KR101361237B1 - 디지털 비디오 레코더의 비디오 형식 - Google Patents

디지털 비디오 레코더의 비디오 형식 Download PDF

Info

Publication number
KR101361237B1
KR101361237B1 KR1020127009096A KR20127009096A KR101361237B1 KR 101361237 B1 KR101361237 B1 KR 101361237B1 KR 1020127009096 A KR1020127009096 A KR 1020127009096A KR 20127009096 A KR20127009096 A KR 20127009096A KR 101361237 B1 KR101361237 B1 KR 101361237B1
Authority
KR
South Korea
Prior art keywords
video
format
encoding
delete delete
encoded
Prior art date
Application number
KR1020127009096A
Other languages
English (en)
Other versions
KR20120056867A (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
Priority claimed from US12/636,699 external-priority patent/US8554061B2/en
Application filed by 애플 인크. filed Critical 애플 인크.
Publication of KR20120056867A publication Critical patent/KR20120056867A/ko
Application granted granted Critical
Publication of KR101361237B1 publication Critical patent/KR101361237B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/01Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
    • H04N7/0117Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving conversion of the spatial resolution of the incoming video signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/92Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/162User input
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/765Interface circuits between an apparatus for recording and another apparatus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/917Television signal processing therefor for bandwidth reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes

Abstract

일부 실시예는 비디오 클립을 캡처하는 비디오 녹화 장치를 제공한다. 비디오 녹화 장치는 비디오 클립을 인코딩하는 몇개의 상이한 인코딩 방식 중에서 비시간 압축된 인코딩 방식의 선택을 수신한다. 상이한 인코딩 방식은 적어도 하나의 시간 압축된 인코딩 방식 및 적어도 선택된 비시간 압축된 인코딩 방식을 포함한다. 비디오 녹화 장치는 비디오 클립을 몇개의 프레임으로서 캡처한다. 비디오 녹화 장치는 각각의 프레임을 몇개의 슬라이스로서 비시간 인코딩한다. 특정의 프레임의 슬라이스는 비디오 디코딩 장치의 몇개의 처리 유닛에서 디코딩하기 위한 것이다. 비디오 녹화 장치는 비디오 클립을 저장 장치에 저장한다.

Description

디지털 비디오 레코더의 비디오 형식{VIDEO FORMAT FOR DIGITAL VIDEO RECORDER}
본 발명은 비디오 녹화에 관한 것이다. 구체적으로는, 본 발명은 디지털 비디오 레코더의 비디오 형식에 관한 것이다.
디지털 비디오 레코더는 컴퓨터로 전송하기 위한 디지털 비디오를 녹화하는 데 흔히 사용된다. 일단 컴퓨터 상에 있는 경우, 사용자는 디지털 비디오를 편집하고, 향상시키며 공유할 수 있다. 그러나, 현재의 디지털 비디오 레코더는 시간 압축을 사용하는 인코딩의 형태를 사용하여 디지털 비디오를 압축한다. 즉, 압축된 비디오는 실제 영상이 아니라 영상으로서 인코딩되는 인덱스(I) 프레임과의 차이를 나타내는 수학적 데이터일 뿐인 예측(P) 및 양방향(B) 프레임을 포함한다.
시간 압축은 디지털 비디오를 보다 작은 파일 크기로 압축하는 것을 가능하게 하지만, 비디오에 대해 작업하기 위해 비디오를 자신의 컴퓨터로 전송하고자 하는 사용자에게는 다수의 문제점을 야기한다. P 및 B 프레임이 다른 프레임을 참조해서만 정의되기 때문에, 사용자가 P 및 B 프레임을 편집하기 위해서는 이들이 트랜스코딩되어야만 한다. 이 트랜스코딩은 일반적으로 카메라로부터 디지털 비디오를 가져오기(import)할 시에 일어난다.
도 1은 비디오 카메라(105) 및 컴퓨터(110)를 갖는 종래 기술의 시스템을 나타낸 것이다. 비디오 카메라(105)는 크기 X를 갖는 비디오 파일(115)을 캡처하고 저장한다. 이 비디오는 시간 압축을 사용하여 인코딩된다. 카메라(105)로부터 컴퓨터(110)로 전송할 시에, 비디오는 (시간 압축을 제거하기 위해) 트랜스코딩되고 저장되어야만 한다. 얻어지는 파일(120)은 3X 내지 10X의 크기를 가지며, 따라서 카메라 상의 원본 파일보다 훨씬 더 크다. 이 확장으로 인해, 파일의 크기가 대부분의 사용자에게 엄청나게 될 정도로 그렇게 많은 비디오를 취하지 않는다.
게다가, 트랜스코딩은 시간이 많이 걸리고 계산량이 많은 프로세스이다. 30분의 비디오를 전송하는 것이 트랜스코딩으로 인해 90분 걸릴 수 있다. 그에 따라, 품질을 희생시키거나 과도하게 큰 파일 크기를 생성하는 일 없이, 시간 압축되지 않는 비디오를 녹화할 수 있는 비디오 카메라를 필요로 한다.
본 발명의 일부 실시예는 시간 압축되지 않는 형식으로 디지털 비디오를 캡처하고 저장하는 비디오 녹화 장치(예컨대, 비디오 카메라)를 제공한다. 캡처된 디지털 비디오는, 원하는 비디오 품질을 유지하면서, 원하는 특정의 해상도 및/또는 비트 레이트로 저장된다.
디지털 비디오가 (예컨대, 편집, 공유 등을 위해) 녹화 장치로부터 컴퓨터로 내보내기(export)될 때, 비디오는 어떤 트랜스코딩도 필요로 함이 없이 신속하게 전송된다. 일부 실시예에서, 트랜스코딩은 임의의 시간 압축을 제거하기 위해 가져오기할 시에 비디오를 디코딩하는 것 및 시간 압축 없이 비디오를 재인코딩하는 것을 포함한다. 그에 따라, 비디오가 트랜스코딩될 필요가 없을 때, 디지털 비디오가 그의 기본 형식(native format)으로 컴퓨터 상에 저장된다.
일부 실시예에서, 비디오 녹화 장치는 시간 압축되거나 시간 압축되지 않은 비디오를 저장하는 옵션을 사용자에게 제공한다. 시간 압축된 비디오는 적어도 부분적으로 하나 이상의 다른 비디오 화상을 참조하여 인코딩되는 인터프레임 인코딩된 비디오 화상(예컨대, 프레임)을 포함한다. 비시간 압축된 비디오는 어떤 다른 비디오 화상도 참조하는 일 없이 인코딩되는 인터프레임 인코딩된 비디오 화상(예컨대, 프레임)만을 포함한다.
일부 실시예는 관리가능한 비트 레이트의 비시간 압축된 ED(enhanced-definition) 및/또는 HD(high-definition) 형식을 포함한다. 다양한 비디오 형식이 디지털 비디오 레코더의 사용자 인터페이스를 통해 제시된다. 일부 실시예에서, 다양한 상이한 비디오 형식 모두는 동일한 인코딩 표준을 사용한다. 즉, 시간 압축된 및 비시간 압축된 형식이 동일한 인코딩 표준을 사용한다.
일부 실시예는 들어오는 비디오의 형식을 인식할 수 있는 미디어 편집 응용 프로그램을 제공한다. (예컨대, 전술한 바와 같이 비디오 녹화 장치로부터) 들어오는 디지털 비디오가 시간 압축되어 있을 때, 미디어 편집 응용 프로그램은 디지털 비디오를 트랜스코딩한다. 디지털 비디오가 시간 압축되어 있지 않을 때, 미디어 편집 응용 프로그램은 비디오의 크기를 트랜스코딩 또는 확장하는 일 없이 비디오를 저장한다. 따라서, 트랜스코딩이 없기 때문에, 비시간 압축된 디지털 비디오가 아주 빠르게 가져오기될 수 있다.
본 발명의 새로운 특징이 첨부된 특허청구범위에 기술되어 있다. 그러나, 설명을 위해, 본 발명의 몇가지 실시예가 이하의 도면에 기술되어 있다.
도 1은 비디오 카메라 및 컴퓨터를 갖는 종래 기술의 시스템을 나타낸 도면이다.
도 2는 디지털 비디오 카메라 및 컴퓨터를 포함하는 일부 실시예의 시스템을 나타낸 도면이다.
도 3은 시간 압축을 사용하여 인코딩되는 디지털 비디오 화상의 시퀀스를 나타낸 도면이다.
도 4는 시간 압축을 사용하지 않고 인코딩되는 디지털 비디오 화상의 시퀀스를 나타낸 도면이다.
도 5는 사용자가 캡처된 비디오에 대한 비디오 형식 옵션을 선택할 수 있게 하는 일부 실시예의 비디오 카메라의 사용자 인터페이스를 나타낸 도면이다.
도 6은 사용자가 캡처된 비디오에 대한 비트 레이트 설정을 지정할 수 있게 하는 일부 실시예의 비디오 카메라의 사용자 인터페이스를 나타낸 도면이다.
도 7은 디지털 비디오를 캡처, 인코딩 및 저장하는 일부 실시예의 디지털 비디오 카메라의 소프트웨어 아키텍처를 나타낸 도면이다.
도 8은 시간 압축된 또는 비시간 압축된 비디오를 저장할 수 있는 디지털 비디오 카메라에서 비디오를 캡처 및 저장하는 일부 실시예의 프로세스를 개념적으로 나타낸 도면이다.
도 9a는 일부 실시예의 비디오 해상도 폭 감소의 예를 개념적으로 나타낸 도면이다.
도 9b는 일부 실시예의 비디오 해상도 폭 증가의 예를 개념적으로 나타낸 도면이다.
도 10은 일부 실시예의 비디오의 인코딩 동안 8x8 매크로블록에 대한 변환을 수행하는 것을 개념적으로 나타낸 도면이다.
도 11은 일부 실시예의 인트라 예측 모드에 대한 예측 방향을 개념적으로 나타낸 도면이다.
도 12a는 일부 실시예의 슬라이스별로 인코딩되는 비디오 영상을 개념적으로 나타낸 도면이다.
도 12b는 일부 실시예의 슬라이스별로 디코딩되는 비디오 영상을 개념적으로 나타낸 도면이다.
도 13은 비디오의 비시간 인코딩을 수행하는 일부 실시예의 프로세스를 나타낸 도면이다.
도 14는 일부 실시예의 비디오 녹화 장치에 대한 상이한 비디오 형식을 정의하는 프로세스를 개념적으로 나타낸 도면이다.
도 15는 도 8의 비디오 캡처, 인코딩 및 저장 프로세스를 이용하는 일부 실시예의 비디오 카메라의 블록도이다.
도 16은 들어오는 디지털 비디오의 상이한 형식을 구분할 수 있는 디지털 비디오를 가져오기 및 편집하는 일부 실시예의 미디어 편집 응용 프로그램을 나타낸 도면이다.
도 17은 디지털 비디오 소스로부터 컴퓨터 내로 가져오기되는 비디오 클립을 저장하는 일부 실시예의 프로세스를 개념적으로 나타낸 도면이다.
도 18은 본 발명의 일부 실시예가 구현되는 컴퓨터 시스템을 나타낸 도면이다.
이하의 기재 내용에, 설명을 위해 많은 상세가 기술되어 있다. 그러나, 당업자는 본 발명이 이들 구체적인 상세를 사용하지 않고도 실시될 수 있다는 것을 인식할 것이다. 예를 들어, 예들 중 일부는 특정의 인코딩 모듈을 나타내고 있다. 당업자는 본 발명을 벗어나지 않고 다른 인코딩 모듈이 가능하다는 것을 인식할 것이다.
본 발명의 일부 실시예는 시간 압축되지 않는 형식으로 디지털 비디오를 캡처하고 저장하는 비디오 녹화 장치를 제공한다. 캡처된 디지털 비디오는, 원하는 비디오 품질을 유지하면서, 원하는 특정의 해상도 및/또는 비트 레이트로 저장된다. 디지털 비디오가 카메라로부터 컴퓨터로 내보내기될 때, 디지털 비디오는 어떤 트랜스코딩도 없이 그의 기본 형식으로 컴퓨터 상에 저장된다.
도 2는 디지털 비디오 카메라(205) 및 컴퓨터(210)를 포함하는 시스템을 나타낸 것이다. 디지털 비디오 카메라는 크기 Y를 갖는 비디오 파일(215)을 캡처하고 저장한다. 비디오 파일(215)은 시간 압축되어 있지 않다. 즉, 비디오 파일 내의 각각의 디지털 비디오 화상(즉, 프레임 또는 필드)은 다른 디지털 비디오 화상을 참조하지 않고 인코딩된다. 이하에서 기술되는 도 3 및 도 4는 상이한 프레임 유형을 나타낸 것이다. 비시간 압축된 비디오 클립은 (예컨대, USB, FireWire, 또는 다른 유선 또는 무선 연결을 통해) 비디오 카메라(205)로부터 컴퓨터(210)로 전송된다. 이하에서 기술하는 바와 같이, 컴퓨터(210)는 비디오를 편집 및 향상시키는 미디어 편집 응용 프로그램을 포함할 수 있다. 컴퓨터(210)는 비디오 클립을 그의 기본 형식으로 비디오 파일(220)로서 저장한다. 이 비디오 파일(220)은 카메라 상의 비디오 파일(215)와 동일한 크기 Y를 가진다.
가져오기할 시에 어떤 트랜스코딩도 수행될 필요가 없는데, 그 이유는 제거할 시간 압축이 없기 때문이다. 이 결과 파일이 동일한 크기를 가질 뿐만 아니라, 전송 시간이 파일의 크기 및 카메라(205)와 컴퓨터(210) 사이의 연결의 속도에 의해서만 제한된다. 트랜스코딩이 수행될 필요가 있을 때, 랜덤 액세스 카메라 저장 장치(즉, 하드 디스크, 플래시 메모리 등)에 부수하게 될 보다 빠른 전송의 가능성이 느린 트랜스코딩 프로세스에 의해 쓸모없게 되버린다.
앞서 언급한 바와 같이, 일부 실시예의 비디오 녹화 장치는 시간 압축되지 않는 형식으로 디지털 비디오를 저장한다. 비시간 압축된 비디오는 어떤 다른 디지털 비디오 화상도 참조하는 일 없이 인코딩되는 인터프레임 인코딩된 디지털 비디오 화상(예컨대, 프레임)만을 포함한다. 비교로서, 도 3은 시간 압축되어 있는 디지털 비디오 화상의 시퀀스(300)를 나타낸 것이다. 시간 압축된 비디오는 적어도 부분적으로 하나 이상의 다른 비디오 화상을 참조하여 인코딩되는 인터프레임 인코딩된 디지털 비디오 화상(예컨대, 프레임)을 포함한다. 도 3은 I-프레임(임의의 다른 프레임을 참조하여 인코딩되지 않는 인트라-프레임), P-프레임(이전의 프레임을 참조하여 인코딩되는 예측 프레임), 및 B-프레임(이전의 프레임 및 장래의 프레임을 참조하여 인코딩되는 양방향 프레임)을 나타낸 것이다.
시퀀스(300)는 I-프레임, 이어서 2개의 B-프레임, 이어서 하나의 P-프레임, 이어서 2개의 추가의 B-프레임을 포함한다. I-프레임(305)으로부터 15번째 총 프레임까지의 시퀀스가, 일부 실시예에서, GOP(Group of Pictures)라고 한다. 이 경우에, GOP 크기는 15이다. 각각의 GOP는 I-프레임으로 시작한다.
일부 실시예는, 시간 압축을 위해 I-프레임, P-프레임 및 B-프레임을 사용하기 보다는, 시간 압축을 위해 I-슬라이스, P-슬라이스 및 B-슬라이스를 사용한다. 일부 실시예의 각각의 디지털 비디오 화상(예컨대, 프레임)은 다수의 매크로블록을 포함하고, 각각의 매크로블록은 16x16 픽셀값 어레이다. 슬라이스는 연속적인 매크로블록의 그룹이다. 매크로블록을 화상별로 어떻게 인코딩할지를 결정하기보다, 일부 실시예는 그 대신에 슬라이스별로 이 결정을 수행한다. 게다가, 슬라이스별로 인코딩된 비디오 영상을 디코딩할 때, 각각의 슬라이스가 서로 독립적으로 디코딩될 수 있다.
도 4는 비디오 화상의 시퀀스(400)가 시간 압축되지 않는 경우를 나타낸 것이다. 그 대신에, 시퀀스(400) 내의 모든 비디오 화상은 다른 프레임을 참조하지 않고 정의되는 I-프레임이다. 이 형식이 시퀀스(300)의 형식처럼 카메라에서 압축되지는 않지만, 시퀀스(400)는 컴퓨터로 전송할 시에 트랜스코딩될 필요가 없고 시간 압축된 시퀀스보다 훨씬 더 쉽게 편집될 수 있다.
일부 실시예는 들어오는 디지털 비디오의 형식을 인식할 수 있는 미디어 편집 응용 프로그램을 제공한다. 비디오가 시간 압축되어 있는 경우, 미디어 편집 응용 프로그램은 디지털 비디오를 트랜스코딩할 뿐이다. 디지털 비디오가 시간 압축되어 있지 않을 때, 미디어 편집 응용 프로그램은 비디오의 크기를 트랜스코딩 또는 확장하는 일 없이 비디오를 저장한다.
I. 디지털 비디오 카메라
앞서 살펴본 바와 같이, 일부 실시예는 시간 압축되지 않는 형식으로 디지털 비디오를 캡처하고 저장하는 비디오 녹화 장치(예컨대, 디지털 비디오 카메라)를 제공한다. 일부 실시예는 시간 압축되거나 시간 압축되지 않은 비디오를 녹화하는 옵션을 사용자에게 제공한다. 일부 실시예에서, 이 옵션은 비디오 카메라의 사용자 인터페이스에 제시된다.
A. 사용자 인터페이스
도 5는 사용자가 캡처된 비디오에 대한 비디오 형식 옵션을 선택할 수 있게 하는 비디오 카메라의 사용자 인터페이스를 나타낸 것이다. 구체적으로는, 이 도면은 2개의 상이한 스테이지, 즉 사용자가 iFrame 비디오 형식 옵션을 선택하기 이전의 제1 스테이지 및 그 선택 이후의 제2 스테이지에서의 비디오 카메라의 사용자 인터페이스를 나타낸 것이다. 도시된 바와 같이, 비디오 카메라(500)는 메뉴(515)를 포함하는 그래픽 사용자 인터페이스(GUI)를 디스플레이하는 디스플레이 화면(510)을 갖는 사용자 인터페이스(505)를 포함한다. 그래픽 사용자 인터페이스는 전적으로 텍스트이거나, 전적으로 그래픽이거나, 이들의 조합일 수 있다. 사용자 인터페이스(505)는 또한 몇개의 사용자 선택가능 컨트롤(520, 525)을 포함한다.
메뉴(515)는 비디오 형식 옵션들의 목록을 디스플레이한다. 이들 옵션은 상이한 해상도에서의 몇개의 iFrame 옵션(즉, iFrame 960x540, iFrame 1280x720) 및 몇개의 시간 압축된 형식 옵션을 포함한다. 메뉴 내의 형식 옵션은 HD(high definition)부터 ED(enhanced definition)까지의 범위에 있지만, 메뉴는 하나 이상의 옵션을 포함하지 않거나 다른 옵션(예컨대, iFrame 640x480)을 포함할 수 있다. 일부 실시예는 하나의 비시간 압축된 옵션(예컨대, 1280x720)만을 포함한다.
앞서 언급한 바와 같이, 일부 실시예는 960x540 iFrame 녹화 형식 옵션을 제공한다. 이 녹화 형식은 540p의 수직 해상도를 가진다. 이 해상도는 다수의 이유로 유익하며, 그 중 하나는 종종 해상도가 카메라의 센서의 기본 해상도에 대응하고 (예컨대, 비디오를 편집하는 데 사용되는 컴퓨터에 의해) 720p, 1080i, 또는 1080p와 같은 HD 표준으로 쉽게 상향 변환될 수 있다는 것이다.
비디오 카메라 상의 사용자 선택가능 컨트롤(520, 525)은 사용자가 메뉴(515)를 탐색할 수 있게 한다. 상세하게는, 컨트롤(520)은 메뉴(515)를 수직으로 탐색하기 위한 것인 반면, 컨트롤(525)은 메뉴를 수평으로 탐색하기 위한 것이다. 도 5에 예시된 예에서, 이들 컨트롤은 비디오 카메라 상에 물리 컨트롤로서 제공된다. 그러나, 일부 실시예에서, 이러한 탐색 컨트롤은 디스플레이 화면 상에 디스플레이되는 그래픽 사용자 인터페이스의 일부로서 제공될 수 있다. 대안으로서, 또는 결합하여, 비디오 카메라(500)는 사용자가 이러한 물리 컨트롤을 컨트롤(520, 525)로서 사용할 필요 없이 터치 스크린을 사용하여 비디오 형식 옵션을 직접 선택할 수 있게 하는 터치 스크린을 구비하고 있을 수 있다.
도 5에 예시되어 있는 2개의 상이한 스테이지를 참조하여 사용자 인터페이스의 동작에 대해 이제부터 기술할 것이다. 제1 스테이지에서, 디스플레이 화면(510)은 메뉴(515)를 디스플레이한다. 현재 선택된 녹화 형식은 시간 압축된 옵션(1080p)이다. 비디오 카메라의 사용자는 컨트롤(520, 525)을 통해 메뉴(515)와 상호작용한다. 구체적으로는, 사용자는 선택된 옵션을 메뉴에서 한 항목만큼 위쪽으로 이동시키고 비디오 형식 옵션을 시간 압축된 형식으로부터 iFrame 형식으로 변경하기 위해 컨트롤들 중 상부 컨트롤(520)을 선택한다.
스테이지 2에 나타낸 바와 같이, 사용자가 컨트롤들(520) 중 상부 컨트롤을 선택하면, 메뉴(515)는 iFrame 형식 옵션(즉, iFrame 960x540)을 하이라이트한다. 이 하이라이트는 iFrame 형식 옵션의 선택의 시각적 표시를 사용자에게 제공한다. 사용자가 iFrame 형식 옵션을 선택하였기 때문에, 그 다음에 캡처되는 비디오 클립은 지정된 해상도로 시간 압축 없이 녹화될 것이다.
이전의 예에서, 메뉴(515)는 상이한 인코딩 방식 및 해상도를 사용하여 캡처된 비디오 프레임의 시퀀스를 인코딩하는 상이한 비디오 형식 옵션들의 목록을 디스플레이한다. 일부 실시예에서, 메뉴(515)는 다른 인코딩 형식을 지정하는 하나 이상의 다른 옵션을 디스플레이한다. 도 6은 사용자가 해상도 및 인코딩 방식 뿐만 아니라 비트 레이트도 지정할 수 있게 하는 사용자 인터페이스(505)를 나타낸 것이다. 일부 실시예에서, 비디오의 비트 레이트는 재생 시간별 비디오 파일의 크기이다. 일반적으로, 해상도가 같게 유지되는 경우, 더 높은 비트 레이트로부터 더 높은 비디오 품질이 얻어질 것이다. 그러나, 보다 높은 비트 레이트는 또한 보다 큰 파일을 의미하며, 이는 사용자가 작업하기에 번거로울 수 있다.
이 도면이 이전의 도면과 유사하지만, 메뉴(515)는 상이한 비트 레이트 설정을 갖는 동일한 해상도로 다수의 iFrame 형식 옵션을 디스플레이한다. 구체적으로는, 메뉴(515)는 2개의 iFrame 해상도(즉, iFrame 960x540, iFrame 1280x720) 각각에 대해 2개의 상이한 비트 레이트 설정(즉, 24 Mbps, 20 Mbps, 또는 16 Mbps 중 2개)을 디스플레이한다. 도시된 바와 같이, iFrame 해상도를 변경하는 일 없이, 사용자는 비트 레이트 설정을 24 Mbps로부터 16 Mbps로 변경하기 위해 컨트롤들(520) 중 하부 컨트롤을 선택한다. 일부 실시예에서, 카메라가 비디오를 궁극적으로 전달하게 될 미디어 편집 응용 프로그램은 최대 지정 비트 레이트(예컨대, 24 Mbps)를 가진다. 일부 실시예에서, 비디오 카메라의 메뉴(515)는 사용자가 다른 비디오 인코딩 옵션을 선택할 수 있게 할 수 있다. 예를 들어, 메뉴(515)는 선택가능 프레임 레이트 옵션(예컨대, 초당 25 또는 30 프레임)을 디스플레이할 수 있다.
B. 아키텍처
도 7은 디지털 비디오를 캡처, 인코딩 및 저장하는 디지털 비디오 카메라(700)의 소프트웨어 아키텍처를 나타낸 것이다. 디지털 비디오 카메라(700)는 사용자 인터페이스(705), 비디오 압축 제어기(710), DCT(discrete cosine transform) 유닛(715), 양자화기 유닛(720), 엔트로피 인코더(725), 역양자화기 유닛(730), IDCT(inverse discrete cosine transform) 유닛(735), 움직임 보상, 움직임 추정, 및 인트라-프레임 예측 유닛(740), 가산기(745), 및 영상 캡처 유닛(750)을 포함한다.
카메라는 또한 압축 설정(755)에 대한 저장 장치, 및 비디오 저장 장치(760)를 포함한다. 일부 실시예에서, 2개의 저장 장치는 동일한 물리 저장 장치이다. 다른 실시예에서, 2개의 저장 장치는 카메라 내의 개별적인 물리 저장 장치이거나, 동일한 물리 저장 장치의 상이한 파티션이다. 일부 실시예에서, 비디오 저장 장치(760)는 디지털 테이프이다. 다른 실시예에서, 비디오 저장 장치(760)는 자기 디스크 저장 장치(예컨대, 하드 디스크) 또는 고상 메모리(예컨대, 플래시 메모리)와 같은 비휘발성 저장 장치이다. 일부 실시예에서, 비디오 저장 장치(760)는 플래시 메모리와 같은 랜덤 액세스 저장 장치이다. 플래시 메모리의 예는, 플래시 메모리의 유형 중에서도 특히, SD(Secure Digital), CF(CompactFlash), MS(Memory Stick)를 포함한다. 저장 장치(760)가 랜덤 액세스 저장 장치일 때, 제2 비디오 클립이 제1 비디오 클립 이후에 녹화되어 있을지라도, 사용자(예컨대, 비디오 카메라가 부착되어 있는 컴퓨터의 사용자)는 제1 비디오 클립보다 먼저 제2 비디오 클립에 액세스하기로 선택할 수 있다. 비디오 저장 장치(760)의 다른 실시예는 FAT(file allocation table), HFS(hierarchical file system), exFAT(extended file allocation table), 및 기타 상이한 유형의 파일 시스템과 같은 상이한 파일 시스템을 사용하여 데이터(예컨대, 캡처된 디지털 비디오)를 저장하도록 구성될 수 있다.
카메라(700)의 사용자 인터페이스(705)는 이전의 도면에서 디스플레이(510) 상에 예시된 그래픽 사용자 인터페이스는 물론, 동일한 도면에 예시된 컨트롤(520, 525)과 같은 사용자 입력 컨트롤 둘다를 포함한다. 그래픽 사용자 인터페이스는 텍스트 전용 인터페이스일 수 있거나, 그래픽도 포함할 수 있다.
앞서 예시된 바와 같이, 사용자는 사용자 인터페이스(705)를 통해 형식 선택 정보를 입력한다. 압축 유형(시간 또는 비시간), 해상도 및/또는 비트 레이트를 선택함으로써, 사용자는 그 다음에 녹화되는 비디오에 대한 형식을 결정한다. 이 형식 선택 정보(765)는 사용자 인터페이스로부터 비디오 압축 제어기(710)로 전달된다.
비디오 압축 제어기(710)는 지정된 형식에 대한 인코딩을 어떻게 수행할지를 다양한 압축 및 인코딩 모듈에 지시한다. 비디오 압축 제어기는 선택된 형식에 기초하여 저장 장치(755)로부터 압축 설정을 추출한다. 이들 압축 설정이 비디오를 지정된 형식으로 적절히 인코딩하도록 그 압축 설정이 이어서 다양한 압축 및 인코딩 모듈로 전송된다. 도 7은 비디오 압축 제어기가 DCT 유닛(715), 양자화기 유닛(720), 엔트로피 인코더(725), 및 움직임 추정, 움직임 보상, 및 인트라-프레임 예측 유닛(740)에 지시하는 것을 나타내고 있다. 일부 실시예에서, DCT 및 양자화기 유닛(715, 720)에 주어지는 것과 유사한 정보가 또한 역양자화기 및 IDCT 유닛(730, 735)으로도 전달된다.
영상 캡처 유닛(750)은 비디오를 캡처한다. 비디오 캡처 프로세스에 관한 추가의 상세에 관해, 이하에서 도 15를 참조한다. 일부 실시예에서, 비디오가 초당 25 또는 30 프레임의 레이트로 캡처된다. 이것은 일부 실시예에서 사용자 옵션이고 다른 실시예에서 변경가능하지 않은 설정이다. 각각의 캡처된 프레임은 기본적으로 비디오 카메라에 의해 캡처된 영상이다. 캡처된 프레임은, 프레임이 인코딩될 수 있도록, 촬영기로부터 압축 및 인코딩 모듈(715 내지 745)로 전송된다.
DCT 유닛(715)은 가산기(745)에서 수행되는 가산 또는 감산으로부터 얻어지는 영상 데이터의 블록에 대해 이산 코사인 변환을 수행한다. 이산 코사인 변환 연산은 영상 데이터의 블록 내에 존재하는 일부 공간 중복성을 제거함으로써 압축을 달성한다. 이 연산은 영상 데이터의 블록을, 블록의 대부분의 에너지가 통상적으로 몇몇 저주파수 계수에 집중되어 있는 DCT 계수의 2차원 어레이로 변환한다.
양자화기 유닛(720)은 DCT 유닛(715)에 의해 생성된 DCT 계수에 대해 양자화를 적용한다. 양자화 동작은 일정 범위의 값을 단일 양자값(quantum value)으로 압축함으로써 DCT 계수의 압축을 달성한다. 양자화는 품질의 손실을 야기하고, 따라서 일부 실시예는 DCT 계수의 특정 주파수에 보다 작은 양자화 계단(quantization step)을 할당함으로써 영상 품질의 손실을 최소화하기 위해 양자화 행렬을 사용한다.
엔트로피 인코더(725)는 입력 데이터를 가변 길이 코드로 변환한다. 일부 실시예에서, 입력 데이터는 양자화기 유닛(720)으로부터 바로 나온 것이다. 다른 실시예에서, 지그재그 스캔 및 런 길이 인코딩과 같은 중간 동작이 양자화기 유닛(720)과 엔트로피 인코더(725) 사이에서 수행된다. 일부 실시예의 엔트로피 인코더(725)는 낮은 발생 확률을 갖는 값에 대해서 보다 높은 발생 확률을 갖는 값에 더 짧은 길이의 코드 워드를 할당함으로써 압축을 달성한다(예컨대, 컨텍스트 기반 적응적 가변 길이 코딩). 일부 실시예는 엔트로피 코딩이 심볼별로 수행되는 Huffman 또는 UVLC와 같은 코딩 방식을 사용한다. 다른 실시예는 전체 데이터 블록이 단일 숫자로서 인코딩되는 산술 코딩과 같은 코딩 방식을 사용한다(예컨대, 컨텍스트 기반 적응적 이진 산술 코딩). 엔트로피 인코더는 비디오 저장 장치(760)에 저장될 수 있는 인코딩된 프레임을 출력한다.
일부 실시예는 비디오 영상의 추가적인 압축을 달성하기 위해 공간 또는 시간 예측을 수행한다. 이것을 용이하게 하기 위해, 일부 실시예는 비디오 디코딩 경로를 포함하고 따라서 인코더는 예측을 수행하기 위해 디코더에서 사용되는 동일한 디코딩된 참조 프레임을 사용할 수 있다. 디코딩 경로는 역양자화기 유닛(730) 및 역DCT 유닛(735)을 포함하고, 이들 유닛은 상기한 바와 같은 양자화기 유닛(720) 및 DCT 유닛(715)의 반대의 동작을 수행한다.
움직임 추정, 움직임 보상, 및 인트라-프레임 예측 유닛(740)은 움직임 추정, 움직임 보상, 및 인트라-프레임 예측 동작을 수행한다. 움직임 보상 동작은 디코딩 경로의 일부이고, 이는 역DCT 유닛(735)의 출력을 보상하여 비디오 영상을 재구성 및 디코딩하기 위해 시간 예측 정보를 사용한다. 움직임 추정 동작은 인코딩 경로의 일부이고, 이는 시간 예측에서 사용할 움직임 벡터를 생성하기 위해 일치하는 픽셀 블록이 있는지 다른 디코딩된 프레임을 검색한다. 인트라-프레임 예측은 인코딩 구성요소 및 디코딩 구성요소를 가진다. 인트라-프레임 예측 동작의 디코딩 구성요소는 비디오 영상을 재구성 및 디코딩하기 위해 공간 예측 정보를 사용한다. 인트라-프레임 예측 동작의 인코딩 구성요소는 공간 예측에서 사용할 일치하는 픽셀 블록이 있는지 현재의 디코딩된 프레임을 검색한다. 일부 실시예에서, 유닛(740)은 시간 압축을 수행하지 않도록 지시받을 때 공간 인트라-프레임 예측만을 수행할 것이다.
가산기(745)는 영상 캡처 유닛(750)으로부터의 영상과 움직임 추정, 움직임 보상 및 인트라-프레임 예측 유닛(740)의 출력 사이의 차이를 계산한다. 얻어지는 차이(또는 합산)이 이어서 상기한 바와 같이 인코딩되기 위해 DCT 유닛(715)으로 전송된다.
DCT, 양자화기, 및 엔트로피 인코더 유닛(715 내지 725) 각각의 동작은 수많은 상이한 변수에 의해 결정된다. 이들 변수 각각은 지정된 비디오 형식에 따라 상이하게 설정될 수 있다. 따라서, 일부 실시예에서, DCT 동작이 하나의 특정의 설정에 의해서가 아니라, 오히려 다수의 상이한 선택에 의해 제어된다. 일부 실시예에서, 이들은 특정의 해상도 및 비트 레이트에서 비디오 품질을 극대화하도록 되어 있는 카메라 제조업체에 의한 설계 선택 사항이다. 유사하게, 일부 실시예에서, 양자화기 및 엔트로피 인코더 동작이 또한 특정의 해상도 및 비트 레이트에서 비디오 품질을 극대화하도록 되어 있는 각각의 특정의 형식에 대한 설계 선택 사항인 다수의 상이한 선택 사항에 의해 제어된다. 예를 들어, 양자화기에 의해 사용되는 양자화 행렬이 비디오 형식에 기초하여 수정될 수 있다.
비디오 압축 제어기(710)가 비시간 압축된 비디오에 대한 설정을 지정할 때, 움직임 추정, 움직임 보상 및 인트라-프레임 예측 유닛(740)은 시간 압축의 일부인 움직임 추정 및 움직임 보상 동작보다는 인트라-프레임 예측만을 수행하도록 지시받는다. 한편, 비디오 압축 제어기가 시간 압축된 비디오에 대한 설정을 지정할 때, 유닛(740)은 인트라-프레임 예측에 부가하여 움직임 추정 및 움직임 보상을 수행한다.
게다가, 일부 실시예에서, 비디오 압축 제어기(710)는 상이한 모듈에 대한 인코딩 변수를 지정하는 것에 부가하여 인코딩 프로세스 동안 레이트 제어를 수행한다. 레이트 제어를 수행하기 위해, 제어기(710)는, 각각의 프레임의 인코딩 후에, 인코딩된 비디오 화상의 대상 비트 레이트(즉, 비디오 형식에 대한 지정된 비트 레이트)에 대한 근접성을 계산한다. 제어기(710)는 이어서 인코딩될 프레임의 크기를 조정하기 위해 동작 중에 압축 변수[예컨대, DCT 유닛(715) 및 양자화기 유닛(720)의 변수]를 조정한다. 일부 실시예에서, 이들 변경이 행해지는 방식은 선택된 비디오 형식에 의해 지정된 압축 설정의 일부이다.
카메라(700)의 특징들 중 다수가 하나의 모듈[예컨대, 비디오 압축 제어기(710)]에 의해 수행되는 것으로 기술되어 있지만, 당업자는 기능이 다수의 모듈로 분할될 수 있고, 하나의 특징의 수행이 심지어 다수의 모듈을 필요로 할 수 있다는 것을 인식할 것이다. 유사하게, 일부 실시예에서, 개별 모듈에 의해 수행되는 것으로 나타내어진 특징이 하나의 모듈에 의해 수행될 수 있다.
도 8은 시간 압축된 또는 비시간 압축된 비디오를 저장할 수 있는 디지털 비디오 카메라[예컨대, 카메라(700)]에서 비디오를 캡처 및 저장하는 일부 실시예의 프로세스(800)를 개념적으로 나타낸 것이다. 프로세스(800)는 특정의 해상도 및/또는 비트 레이트를 지정하는 캡처된 비디오에 대한 선택된 비디오 형식을 식별하는 것(805)으로 시작한다. 일부 실시예에서, 이 비디오 형식이, 도 5 및 도 6에 예시된 바와 같이, 사용자 인터페이스를 통해 사용자에 의해 선택된다.
프로세스(800)는 현재 캡처되고 있는 비디오 클립에 대해 시간 압축을 수행할지 여부를 판정한다(810). 이 판정은 선택된 비디오 형식에 기초하여 행해진다. 사용자가 iFrame 녹화 모드를 선택했을 때, 어떤 시간 압축도 수행되지 않는다. 한편, 사용자가 상이한 녹화 모드(예컨대, AVC HD 1080p)를 선택했을 때, 시간 압축이 필요하다.
시간 압축이 필요할 때, 프로세스는 그 다음 캡처된 비디오 화상을 수신한다(815). 프로세스는 이어서 비디오 화상을 공간적으로도 시간적으로도 압축하고(820), 비디오 화상을 인코딩한다(820). 일부 실시예에서, 이 동작은 다양한 인코딩 모듈(715 내지 745)에 의해 수행된다. 프로세스는 이어서 인코딩된 비디오 화상을 카메라의 저장 장치에 저장한다(825). 그 다음에, 프로세스(800)는 카메라가 여전히 비디오를 캡처하고 있는지 여부(즉, 압축 및 인코딩할 비디오 프레임이 더 있는지 여부)를 판정한다(830). 카메라가 더 이상 비디오를 캡처하고 있지 않을 때, 프로세스가 종료한다. 그렇지 않은 경우, 프로세스는 그 다음 캡처된 비디오 화상을 수신하기 위해 단계(815)로 되돌아간다.
현재 캡처된 비디오 클립에 대해 시간 압축이 필요하지 않을 때, 프로세스는 그 다음 캡처된 비디오 화상을 수신한다(835). 프로세스는 이어서 비디오 화상을 공간적으로 압축한다(840). 일부 실시예에서, 이 동작은, 비록 인트라-예측만이 사용되지만, 유닛(740)에 의해 수행된다. 비디오 화상이 시간적으로 압축되고 있지 않기 때문에, 움직임 추정이나 움직임 보상이 수행될 필요가 없다.
그 다음에, 프로세스(800)는 선택된 형식에 따른 변수를 사용하여 비디오 화상에 대해 이산 코사인 변환을 수행한다(845). 즉, 일부 실시예에서, 비디오 압축 제어기(710)에 의해 이산 코사인 변환 유닛(715)으로 전송된 변수를 사용하여 이산 코사인 변환이 수행된다. 이들은 비디오에 대해 시간 압축을 수행하는 일 없이 원하는 해상도 및/또는 비트 레이트로 고품질 비디오를 생성하도록 (일부 실시예에서, 카메라 제조업체에 의한 설계 선택사항으로서) 선택된 변수이다.
프로세스는 이어서 선택된 형식에 따른 변수를 사용하여 비디오 화상(DCT 유닛의 출력)을 양자화한다(850). 즉, 일부 실시예에서, 비디오 압축 제어기(710)에 의해 양자화기 유닛(720)으로 전송된 변수를 사용하여 양자화가 수행된다. 이들은 비디오에 대해 시간 압축을 수행하는 일 없이 원하는 해상도 및/또는 비트 레이트로 고품질 비디오를 생성하도록 (일부 실시예에서, 카메라 제조업체에 의한 설계 선택사항으로서) 선택된 변수이다.
프로세스는 이어서 선택된 형식에 따른 변수를 사용하여 비디오 화상(양자화기 유닛 및 런 길이 인코더와 같은 임의의 중간 모듈의 출력)을 엔트로피 인코딩한다(855). 즉, 일부 실시예에서, 비디오 압축 제어기(710)에 의해 엔트로피 인코더(725)로 전송된 변수를 사용하여 엔트로피 인코딩이 수행된다. 이들은 비디오에 대해 시간 압축을 수행하는 일 없이 원하는 해상도 및/또는 비트 레이트에서 고품질 비디오를 생성하도록 (일부 실시예에서, 카메라 제조업체에 의한 설계 선택사항으로서) 선택된 변수이다.
프로세스(800)는 그 다음에 인코딩된 비디오 화상을 카메라의 저장 장치에 저장한다(860). 그 다음에, 프로세스(800)는 카메라가 여전히 비디오를 캡처하고 있는지 여부(즉, 압축 및 인코딩할 비디오 프레임이 더 있는지 여부)를 판정한다(865). 카메라가 더 이상 비디오를 캡처하고 있지 않을 때, 프로세스가 종료한다. 그렇지 않은 경우, 프로세스는 그 다음 캡처된 비디오 화상을 수신하기 위해 단계(835)로 되돌아간다.
C. 예시적인 비디오 처리 구성
이상의 섹션은 시간 압축되지 않는 형식으로 디지털 비디오를 캡처하고 저장하는 일부 실시예의 비디오 녹화 장치의 다양한 양태를 기술하고 있다. 이하의 섹션은 일부 실시예의 비시간 압축 비디오 처리 구성 및 이러한 구성에 의해 수행되는 다양한 프로세스의 양태에 대해 기술한다. 일부 실시예에서, 이 구성은, 설계 목적 중에서도 특히, 특정의 해상도 및 비트 레이트에서 비디오 품질을 극대화하고 비디오의 디코딩 시간을 감소시키도록 되어 있는 카메라 제조업체에 의한 설계 선택사항에 기초하여 결정된다.
비시간 압축된 비디오의 비디오 품질을 향상시키기 위해(또는 그의 비트 레이트를 감소시키기 위해) 상이한 비디오 처리 기법이 이용될 수 있다. 한가지 이러한 기법은 비디오가 인코딩되기 전에 선택된 해상도(예컨대, iFrame 1280x720)로부터 비디오 해상도의 폭을 감소시키는 것이다. 그에 따라, 예시적인 구성의 일부 실시예는 비디오 품질을 향상시키고 및/또는 인코딩된 비디오의 비트 레이트를 감소시키기 위해 비디오 해상도 폭을 감소시킨다.
도 9a는 일부 실시예의 비디오 해상도 폭 감소의 예를 개념적으로 나타낸 것이다. 이 예에서, 선택된 녹화 옵션이 iFrame 1280x720인 것으로 가정된다. 도 9a는 스케일러(905) 및 인코더(910)에 의해 수행되는 비디오 처리 동작의 다양한 스테이지에서의 비디오 영상[예컨대, 영상(925) 및 영상(910)]을 나타낸 것이다. 일부 실시예에서, 인코더(910)는 이하에서 기술되는 도 15의 비디오 인코더(1520)에 의해 구현될 수 있다. 도시된 바와 같이, 1280x720의 해상도를 갖는 인코딩되지 않은 비디오 영상[예컨대, 영상(925)]이 스케일러(905)에 입력된다. 스케일러(905)는 비디오 영상의 해상도의 폭을 감소시키고(즉, 스케일링하고)[(영상(930)에 대해 나타낸 바와 같이) 이제 960x720의 해상도를 가짐], 인코딩되도록 하기 위해 비디오 영상을 인코더(910)로 출력한다. 일부 실시예에서, 스케일러(905)가 비디오 영상의 해상도의 폭을 감소시킬 때, 스케일러는 또한, 비디오의 종횡비가 유지되도록, 픽셀을 폭방향으로 확장시킨다. 이것은 영상(925)의 픽셀을 정사각형으로 나타내고 영상(930)의 픽셀을 직사각형으로 표시함으로써 도 9a에 나타내어져 있다.
예시적인 구성의 일부 실시예는 또한 디코딩된 후에 비디오 해상도의 폭을 증가시킨다. 예를 들어, 일부 이러한 실시예는 비디오 해상도 폭을 다시 비디오가 최초로 캡처되었던 폭으로 증가시킨다. 도 9b는 이러한 실시예의 비디오 해상도 폭 증가의 예를 개념적으로 나타낸 것이다. 도 9b는 디코더(915) 및 스케일러(920)에 의해 수행되는 비디오 처리 동작의 다양한 스테이지에서의 비디오 영상[예컨대, 영상(935) 및 영상(940)]을 나타낸 것이다. 일부 실시예에서, 디코더(915)는 이하에서 기술되는 도 15의 비디오 디코더(1540)에 의해 구현될 수 있다.
계속하여 도 9a에 예시된 예에서, 도 9a의 인코딩된 비디오 영상이 [예컨대, 이하에서 기술되는 미디어 편집 응용 프로그램(1600)에 의해] 디코딩될 때, 이들은 디코더(915)로 전송된다. 비디오 영상이 디코딩된 후에, 스케일러(920)는 비디오 영상이 저장 및/또는 디스플레이되기 전에 비디오 영상의 해상도의 폭을 증가시킨다(즉, 스케일링한다). 영상(935)으로 나타낸 바와 같이, 디코딩된 비디오 영상은 스케일러(920)가 이들을 처리하기 전에 960x720의 해상도를 가진다. 비디오 영상이 1280x720의 해상도로 최초로 캡처되었기 때문에, 스케일러(920)는 디코딩된 비디오 영상의 해상도의 폭을 다시 영상(940)으로 나타낸 바와 같은 1280x720 해상도로 증가시킨다. 일부 실시예에서, 스케일러(920)가 비디오 영상의 해상도의 폭을 증가시킬 때, 스케일러는 또한, 비디오의 종횡비가 유지되도록, 픽셀을 폭방향으로 축소시킨다. 도 9b는 영상(935)의 픽셀을 직사각형으로 나타내고 영상(940)의 픽셀을 정사각형으로 표시함으로써 이것을 나타내고 있다.
상기 예는 전체 선택 녹화 해상도로 캡처되는 비디오를 기술하고 있다(즉, 비디오 녹화 장치의 영상 센서는 1280x720의 해상도로 비디오 영상을 캡처한다). 일부 실시예에서, 비디오 녹화 장치는 전체 선택 녹화 해상도를 캡처하지 않는다. 오히려, 이들 실시예는 선택된 녹화 해상도보다 낮은 해상도로 비디오를 캡처하고 비디오가 디코딩된 후에 비디오 해상도 폭 증가를 수행한다. 예를 들어, 상기 예를 참조하면, 일부 이러한 실시예는 960x720의 해상도로 비디오를 캡처한다. 비디오가 디코딩될 때, 도 9b에 나타낸 바와 같이 비디오 해상도가 1280x720로 증가된다.
도 9a 및 도 9b에 예시된 예가 1280x720의 해상도로 캡처된 비디오 영상을, 비디오 영상이 인코딩되기 전에 960x720으로 스케일링하는 것 및 비디오 영상을, 비디오 영상이 디코딩된 후에 960x720으로부터 다시 1280x720으로 스케일링하는 것을 나타내고 있지만, 상이한 실시예는 비디오 영상을 다른 크기로 스케일링한다. 예를 들어, 일부 실시예는 비디오를 1920x1080의 해상도로 캡처하고, 비디오 영상을 인코딩하기 전에 비디오 영상을 960x720으로 스케일링하며, 비디오 영상이 디코딩된 후에 비디오 영상을 1280x720으로 스케일링할 수 있다. 다른 실시예는 비디오 영상이 디코딩된 후에 비디오 영상을 스케일링하지 않을 수 있다.
또한, 일부 실시예는 비디오 영상의 해상도의 폭을 스케일링할 뿐만 아니라, 비디오 영상의 해상도의 높이도 스케일링한다. 일부 실시예는 비디오 영상을 비례적으로 스케일링하는 반면, 다른 실시예는 비디오 영상을 아나모픽적으로(anamorphically) 스케일링한다. 일부 실시예에서, 인코딩 이전에 및 인코딩 이후에 비디오 영상을 스케일링할지 여부, 인코딩되기 전에 비디오 영상이 어느 해상도로 스케일링되는지, 및 디코딩된 후에(예컨대, 비디오가 비디오 녹화 장치 자체 상에서 재생될 때) 비디오 영상이 어느 해상도로 스케일링되는지를 결정하는 것은 특정의 해상도 및 비트 레이트에서 비디오 품질을 극대화하도록 되어 있는 카메라 제조업체에 의한 설계 선택사항이다. 게다가, 일부 실시예는 그의 원래의 스케일링전 해상도를 나타내는 메타데이터를 비디오 영상에 삽입하고, 따라서 비디오 재생 장치(예컨대, 컴퓨터, 스마트폰 등)는 재생을 위해 비디오 영상을 스케일링할 시에 이 정보를 사용할 수 있다.
비시간 압축된 비디오의 비트 레이트를 감소시키는(또는 비디오 품질을 향상시키는) 부가적인 방법은 비디오의 인코딩 동안 8x8 매크로블록별로 변환을 수행하는 것이다. 상기 도 7에 나타내고 관련 섹션에 기술된 바와 같이, 영상 캡처 유닛(750)에 의해 캡처된 비디오는 화상별로(즉, 프레임별로) 처리된다. 상세하게는, DCT(715)는 비디오의 영상을 프레임별로 처리한다. 즉, DCT(715)는 가산기(715)로부터 전체 프레임에 대한 영상 데이터를 수신하고, 영상 데이터에 대해 이산 코사인 변환을 수행하며, 이는 이어서 양자화기(720)로 출력된다.
예시적인 구성의 일부 실시예에서, DCT(715)는 8x8 크기 매크로블록에 대해 이산 코사인 변환을 수행하도록 구성되어 있다. 도 10은 비디오의 인코딩 동안 8x8 매크로블록에 대한 변환을 수행하는 것을 개념적으로 나타낸 것이다. 도시된 바와 같이, DCT(715)는 가산기(715)로부터 8x8 행렬의 형태로 8x8 매크로블록에 대한 영상 데이터를 수신하고, 영상 데이터에 대해 이산 코사인 변환을 수행하며, 변환된 데이터를 양자화기(720)로 출력한다(도시 생략). 그러나, 예시적인 구성의 다른 실시예는 16x16과 같은 다른 매크로블록 크기에 대해 이산 코사인 변환을 수행할 수 있다.
비시간 압축된 비디오의 비트 레이트를 감소시키는(또는 비디오 품질을 향상시키는) 또 다른 방법은 비디오를 인코딩할 때 모든 인트라 예측 모드를 수행하는 것이다. 예시적인 구성의 일부 실시예는 비디오 영상을 인트라 예측 인코딩하는 종래의 H.264 코덱 표준을 사용하는 반면, 예시적인 구성의 다른 실시예는 인트라 예측 인코딩을 전혀 수행하지 않는다. 그 대신에, 이들 실시예는 인트라 모드 인코딩만을 사용하여 비디오를 인코딩한다. 일부 실시예에서, 인트라 모드 인코딩은 인트라 예측 모드를 전혀 사용하지 않는 인코딩이다.
앞서 논의된 바와 같이, 일부 실시예에서, 비디오는 비디오 프레임의 시퀀스로 이루어져 있고, 여기서 각각의 프레임은 다수의 매크로블록으로 이루어져 있다. 매크로블록은 통상적으로 16x16 픽셀 어레이며(그러나 상기한 8x8 매크로블록과 같은 다른 매크로블록 크기도 가능함), 파티션(예컨대, 4x4 픽셀 어레이의 파티션)으로 분할된다. H.264 코덱 표준 하에서, 프레임을 인트라 예측 인코딩할 때, 4x4 어레이를 인코딩하는 9개의 상이한 방식이 있다(즉, 9개의 인트라 4x4 예측 모드가 있다). 9개의 모드는 다음과 같다:
0. Intra_4x4_Vertical
1. Intra_4x4_Horizontal
2. Intra_4x4_DC
3. Intra_4x4_Diagonal_Down_Left
4. Intra_4x4_Diagonal_Down_Right
5. Intra_4x4_Vertical_Right
6. Intra_4x4_Horizontal_Down
7. Intra_4x4_Vertical_Left
8. Intra_4x4_Horizontal_Up
각각의 4x4 어레이는 단지 하나의 예측 모드로 인코딩된다. 통상적으로, 최저 비용으로 되는 예측 모드가 선택된다. 비용은 통상적으로 왜곡(여기서 왜곡은 원래의 픽셀값과 인코딩된 예측 값 사이의 차이를 반영함) 또는 왜곡의 가중 평균 및 예측 모드에 의해 생성된 비트 수와 같다(여기서 왜곡 및/또는 비트 수의 증가는 비용을 증가시킴). 최저의 비용을 갖는 최적의 예측 모드(최상의 선택 모드)를 결정하기 위해 9개의 예측 모드 전부에 대한 전수적인 검색이 수행될 수 있다. 일부 실시예는, 9개의 예측 모드에 대한 전수적인 검색을 수행하는 대신에, 인트라 예측 모드를 선택하기 위해 검색 추론(searching heuristics)을 적용한다.
도 11은 상기한 9개의 인트라 예측 모드에 대한 예측 방향을 개념적으로 나타낸 것이다. 현재 처리된 4x4 어레이에 대해, H.264 표준 하에서의 예측 모드는 현재 처리된 어레이에 대해 인코딩된 예측 정보의 기초가 되는 다른 4x4 어레이(본 명세서에서 예측 어레이라고 함)의 (현재 처리된 4x4 어레이에 대한) 위치를 가리킨다. 예를 들어, 예측 모드 0(수직)은 현재 처리된 어레이에 대한 예측 어레이가 현재 처리된 어레이 위쪽에 위치한다는 것을 나타내고, 예측 모드 1(수평)은 현재 처리된 어레이에 대한 예측 어레이가 현재 처리된 어레이의 좌측에 위치한다는 것을 나타낸다.
게다가, 비시간 압축된 비디오의 디코딩 시간을 감소시키는 다양한 방식이 있다. 앞서 살펴본 바와 같이, 비디오 영상이 슬라이스별로 인코딩되었을 때, 비디오 영상의 각각의 슬라이스는 다른 슬라이스에 독립적으로 디코딩될 수 있다. 그에 따라, 비시간 압축된 비디오의 디코딩 시간을 감소시키는 한가지 방식은 다수의 프로세서를 갖는 컴퓨팅 장치가 비디오 영상의 슬라이스를 독립적으로 그리고 동시에 디코딩할 수 있도록 비디오 영상을 슬라이스별로 인코딩하는 것이다.
도 12a는 일부 실시예의 슬라이스별로 인코딩되는 비디오 영상을 개념적으로 나타낸 것이다. 도시된 바와 같이, 이 도면은 인코더(1205)에 의해 처리되지 않은 비디오 영상(1200)을 나타내고 있다. 일부 실시예에서, 인코더(1205)는 이하에서 기술되는 도 15의 비디오 인코더(1520)에 의해 구현될 수 있다. 이 예에서, 인코더(1205)는 비디오 영상을 4개의 슬라이스로 분할하고 비디오 영상을 슬라이스별로 인코딩하도록 구성되어 있다. 영상(1210)은 4개의 슬라이스로 분할된 비디오 영상을 개념적으로 나타낸 것이다. 예시된 바와 같이, 영상(1210)은 4개의 섹션(1215 내지 1230)으로 분할된다. 그러나, 섹션(1215 내지 1230)이 분할되는 방식은 단지 예시를 위한 것이다. 인코더(1205)의 다른 실시예는 영상(1210)을 임의의 수의 섹션으로 또한 임의의 수의 상이한 형상 및 크기로 분할할 수 있다.
슬라이스별로 인코딩된 비디오 영상의 각각의 슬라이스가 독립적으로 디코딩될 수 있기 때문에, 다수의 프로세서를 갖는 컴퓨팅 장치(예컨대, 컴퓨터, 스마트폰 등)는 다수의 슬라이스를 동시에 디코딩할 수 있다. 도 12b는 하나의 이러한 컴퓨팅 장치의 디코딩 하드웨어를 개념적으로 나타낸 것이다. 이 도면은 처리 시스템(1240) 및 디코딩 제어기(1290)를 포함하는 디코딩 하드웨어(1235)를 나타낸 것이다. 일부 실시예에서, 디코딩 하드웨어(1235)는 이하에서 기술되는 도 15의 비디오 디코더(1540)에 의해 구현될 수 있다.
처리 시스템(1240)은 4개의 처리 유닛(1245 내지 1260)(프로세서, 코어, 처리 코어 등)을 포함한다. 일부 실시예에서, 처리 유닛(1245 내지 1260)은 단일 다이 상의 코어 로서 구현되는 반면, 다른 실시예에서, 처리 유닛(1245 내지 1260)은 단일 패키지 내의 칩으로서 구현된다. 또 다른 실시예에서, 처리 유닛(1245 내지 1260)은 단일 시스템 내의 다수의 패키지로서 구현된다. 일부 실시예의 디코딩 제어기(1290)는 비디오 영상의 슬라이스를 디코딩을 위해 처리 유닛(1245 내지 1260)에 할당 또는 배정하는 일을 맡고 있다. 그에 따라, 디코딩 하드웨어(1240)가 비디오 프레임이 슬라이스별로 인코딩되어 있음을 식별하고 비디오 프레임의 슬라이스를 식별할 때, 디코딩 제어기(1290)는 식별된 슬라이스를 디코딩을 위해 처리 유닛(1245 내지 1260) 중 하나 이상에 할당 또는 배정한다. 일부 실시예에서, 디코딩 제어기(1290)는 처리 유닛(1245 내지 1260) 중 하나 이상에 의해 구현될 수 있는 반면, 다른 실시예에서, 디코딩 제어기(1290)는 개별 하드웨어 구성요소에 의해 구현될 수 있다.
계속하여 도 12a에 예시된 예에서, 4개의 슬라이스로 분할되고 슬라이스별로 인코딩된 비디오 영상이 디코딩을 위해 디코딩 하드웨어(1235)로 전송된다. 각각의 비디오 영상의 슬라이스가 식별되고 디코딩을 위해 처리 시스템(1240)의 처리 유닛에 할당된다. 도시된 바와 같이, 비디오 영상(1265)은 4개의 슬라이스(1270 내지 1225)를 포함한다. 디코딩 제어기(1290)는 슬라이스(1270)를 처리 유닛(1245)에 할당하고, 슬라이스(1275)를 처리 유닛(1250)에 할당하며, 슬라이스(1220)를 처리 유닛(1255)에 할당하고, 슬라이스(1225)를 처리 유닛(1260)에 할당한다. 각각의 슬라이스가 다른 슬라이스와 독립적으로 디코딩될 수 있기 때문에, 처리 시스템(1240)의 상이한 처리 유닛을 슬라이스(1270 내지 1225) 각각에 할당하는 것은 비디오 영상(1265)의 슬라이스(1270 내지 1225)가 독립적으로 그리고 동시에 디코딩될 수 있게 한다. 그에 따라, 이 디코딩 기법에 의해, 일부 실시예에서, 디코딩 시간이 감소된다.
도 12b에서, 비디오 영상 내의 각각의 슬라이스는 처리 시스템(1240)의 단일 프로세서에 의해 동시에 또한 독립적으로 디코딩된다. 그러나, 다른 실시예는 비디오 영상의 슬라이스를 디코딩하기 위해 상이한 수의 프로세서를 할당 또는 배정할 수 있다. 예를 들어, 일부 실시예는 비디오 영상의 각각의 슬라이스를 디코딩하기 위해 처리 시스템(1240)의 2개의 처리 유닛을 할당할 수 있다. 그에 따라, 비디오 영상의 최대 2개의 슬라이스가 주어진 때에 예시된 처리 시스템(1240)에 의해 동시에 디코딩될 수 있다. 다른 실시예는 비디오 영상의 각각의 슬라이스를 디코딩하기 위해 처리 시스템(1240)의 모든 처리 유닛(1245 내지 1260)을 할당할 수 있다. 이러한 실시예에서, 한번에 단지 하나의 슬라이스가 디코딩될 수 있다. 비디오 영상이 분할되는 슬라이스의 수 및 슬라이스의 형상 및 크기를 결정하는 것은 비디오의 디코딩 시간을 감소시킬 목적으로 카메라 제조업체에 의한 행해지는 설계 선택사항이다.
도 13은 비디오를 비시간 인코딩하는 예시적인 구성의 일부 실시예의 프로세스(1300)를 나타낸 것이다. 일부 실시예에서, 상기한 움직임 추정, 움직임 보상 및 인트라-프레임 예측 유닛(740)은 프로세스(1300)의 적어도 일부분을 수행한다. 일부 실시예에서, 프로세스(1300)는 이하에서 기술되는 비디오 인코더(1520)에 의해 수행될 수 있다.
비디오 내의 비디오 영상에 대해, 프로세스는 비디오 영상의 해상도의 폭을 감소시키는 것(1305)으로 시작된다. 동작(1305)은 도 9a를 참조하여 전술한 바와 같이 수행될 수 있다. 그 다음에, 프로세스(1300)는 도 12a를 참조하여 전술한 바와 같이 비디오 영상을 다수의 슬라이스로 분할한다(1310). 프로세스(1300)는 이어서 슬라이스들 중 하나의 슬라이스에서 매크로블록을 선택한다(1315). 그 후에, 프로세스(1300)는 선택된 매크로블록에 대해 인트라 예측 모드를 선택하고(1320) 선택된 예측 모드를 수행한다(1325). 프로세스(1300)는 이어서 전술한 바와 같이 선택된 인트라 예측 모드에 대한 비용을 계산한다(1330).
그 다음에, 프로세스는 임의의 비선택된 인트라 예측 모드가 남아 있는지 여부를 판정한다(1335). 비선택된 인트라 예측 모드가 남아 있는 경우, 프로세스는 다른 비선택된 인트라 예측 모드를 계속하여 수행하기 위해 동작(1320)으로 다시 되돌아간다. 비선택된 인트라 예측 모드가 남아 있지 않은 경우, 프로세스(1300)는 계산된 비용이 최저인 인트라 예측 모드를 선택한다(1340).
1345에서, 프로세스(1300)는 선택된 인트라 예측 모드가 충분히 양호한지를 판정한다. 일부 실시예에서, 선택된 인트라 예측 모드를 사용하여 매크로블록을 인코딩하는 것의 오버헤드 비용이 인트라 모드를 사용하여 매크로블록을 인코딩하는 것의 비용보다 작을 때, 선택된 인트라 예측 모드가 충분히 양호하다. 선택된 인트라 예측 모드를 사용하여 매크로블록을 인코딩하는 것이 비용은 인트라 모드에 포함되지 않은 오버헤드 비용을 포함한다. 일부 실시예에서, 인트라 모드를 사용하여 매크로블록을 인코딩하는 것은 인트라 예측 모드를 전혀 사용하지 않고 매크로블록을 인코딩하는 것이다.
프로세스(1300)가 선택된 인트라 예측 모드가 충분히 양호하지 않은 것으로 판정하는 경우, 프로세스(1300)는 매크로블록에 대한 인코딩 모드로서 인트라 모드를 선택한다(1350). 그러나, 프로세스(1300)가 선택된 인트라 예측 모드가 충분히 양호한 것으로 판정하는 경우, 프로세스(1300)는 매크로블록에 대한 인코딩 모드로서 선택된 인트라 예측 모드를 선택한다(1355). 매크로블록에 대한 인코딩 모드를 결정한 후에, 프로세스(1300)는 도 10을 참조하여 전술한 바와 같이 매크로블록에 대해 8x8 변환을 수행한다(1360).
마지막으로, 프로세스는 슬라이스 내의 임의의 비선택된 매크로블록이 남아 있는지 여부를 판정한다(1365). 슬라이스 내에 비선택된 매크로블록이 남아 있는 경우, 프로세스는 동작(1315)으로 되돌아가서, 슬라이스 내의 다른 매크로블록을 처리한다. 따라서, 프로세스(1300)는 슬라이스 내에 남이 있는 매크로블록이 더 이상 없을 때까지 동작(1315 내지 1360)을 반복하고, 이 시점에서 프로세스가 종료한다. 프로세스(1300)가 비디오 영상의 하나의 슬라이스에 대한 매크로블록의 처리를 기술하고 있지만, 동작(1315 내지 1365)은 비디오 영상 내의 각각의 슬라이스에 대해 수행된다.
도 14는 일부 실시예의 비디오 녹화 장치에 대한 상이한 비디오 형식을 정의하는 프로세스를 개념적으로 나타낸 것이다. 일부 실시예에서, 비디오 녹화 장치는 시간 압축된 및 비시간 압축된 비디오 형식 둘다를 제공한다.
프로세스(1400)는 캡처된 비디오에 대한 특정의 해상도 및/또는 비트 레이트를 지정하는 비디오 형식을 식별하는 것(1405)으로 시작한다. 그 다음에, 프로세스(1400)는 형식이 시간 압축을 지정하는지 여부를 판정한다(1410). 형식이 시간 압축을 지정하는 경우, 프로세스(1400)는 비디오 형식에 대한 시간 압축 파라미터를 정의한다(1415). 일부 실시예에서, 파라미터는 특정의 해상도 및/또는 비트 레이트에 대한 비디오 품질을 극대화하도록 되어 있는 비디오 녹화 장치의 제조업체에 의해 행해지는 설계 선택사항에 기초한다. 형식이 시간 압축을 지정하고 있지 않은 경우, 프로세스는 동작(1420)으로 진행한다.
1420에서, 프로세스(1400)는 비디오 형식에 대해 변환 블록 크기를 8x8인 것으로 정의한다. 프로세스(1400)는 이어서 비디오 형식에 대해 다중 슬라이스 인코딩을 정의한다(1425). 일부 실시예에서, 4개의 슬라이스가 슬라이스의 수로서 정의된다. 그러나, 다른 실시예는 비디오 형식을 사용하여 인코딩되는 비디오 영상에 대한 상이한 수의 슬라이스를 정의할 수 있다. 그 다음에, 프로세스(1400)는 모든 인트라 예측 모드를 검사하기 위한 비디오 형식을 정의한다(1430). 비디오 형식의 파라미터를 정의한 후에, 프로세스(1400)는 정의할 비디오 형식이 더 있는지 여부를 판정한다(1435). 정의할 비디오 형식이 더 있는 경우, 프로세스(1400)는 동작(1405)으로 되돌아가서 다른 비디오 형식을 정의한다. 프로세스(1400)는 정의할 비디오 형식이 더 이상 없을 때까지 동작(1405 내지 1430)을 반복하고, 그 후에 프로세스가 종료한다.
상기 섹션은 특정의 순서로 수행되는 프로세스(1400)의 동작을 기술하고 있다. 그러나, 당업자는 프로세스(1400)의 동작들 중 일부 또는 전부가 임의의 순서로 또는 동시에 수행될 수 있다는 것을 인식할 것이다. 예를 들어, 동작(1420, 1426, 1430)이 동시에 수행될 수 있거나, 동작(1425, 1430)이 동작(1420) 이전에 수행될 수 있거나, 동작(1420, 1430)이 동작(1425) 이전에 수행될 수 있다.
D. 시스템
도 15는 상기한 비디오 캡처, 인코딩 및 저장 프로세스를 이용하는 일부 실시예의 비디오 카메라(1500)의 블록도를 나타낸 것이다. 비디오 카메라(1500)는 비디오 카메라(700)와 동일할 수 있거나, 하나 이상의 측면에서 상이할 수 있다. 도 15에 도시된 바와 같이, 비디오 카메라(1500)는 광 유입구(optical intake)(1505), 영상 감지 회로(1510), 비디오 인코더(1520) 및 저장 장치(1530)를 포함한다. 일부 실시예에서, 비디오 카메라는 데이터 전송 포트(1535), 비디오 디코더(1540), 디지털 뷰어(1545), 및 사용자 입력 컨트롤(1550)을 더 포함한다.
외부 세계의 광학 영상이 광 유입구(1505)를 통해 비디오 카메라(1500)에 들어간다. 일부 실시예에서, 광 유입구(1505)는 조리개 및 하나 이상의 광학 렌즈를 포함한다. 렌즈는 광학 영상에 대해 집속, 광학 줌 또는 기타 광학 프로세스를 수행한다.
광 유입구(1505)로부터의 광학 영상은 영상 감지 회로(1510) 상으로 투사되고, 영상 감지 회로(1510)는 광학 영상을 전자 신호로 변환한다. 일부 실시예에서, 영상 감지 회로(1510)는 전하 결합 소자(CCD)이다. CCD는 2차원 커패시터 어레이를 포함하는 광 활성 영역을 포함하며, 여기서 커패시터는 수광된 광의 세기에 비례하는 전기 전하를 축적한다. 어레이가 광학 영상에 노출되면, 제어 회로는 각각의 커패시터로 하여금 그의 내용을 그의 이웃으로 또는 전하 증폭기(전하를 전압으로 변환함)로 전달하게 한다. 이 프로세스를 반복함으로써, CCD는 광학 영상을 샘플링 및 디지털화한다.
비디오 인코더(1520)는 디지털화된 광학 영상을 인코딩한다. 일부 실시예는 비디오 인코더(1520)를 명령어 집합을 실행하는 마이크로프로세서로서 구현한다. 다른 실시예는 비디오 인코더(1520)를 ASIC(application specific integrated circuit), FPGA(field programmable gate array), 또는 기타 유형의 회로와 같은 하나 이상의 전자 장치를 사용하여 구현한다.
일부 실시예에서, 비디오 인코더(1520)는 영상으로부터 중복성을 제거하기 위해 예측 및 이산 코사인 변환을 사용하는 H.264 MPEG-4 인코더이다. 일부 실시예는 공간 및 시간 중복성 둘다를 제거하는 반면, 다른 실시예는 공간 중복성만을 제거하거나 어떤 중복성도 제거하지 않는다. 비디오 인코더의 일부 실시예는 또한 인코딩된 영상으로부터 압축된 비트스트림을 생성하기 위해 엔트로피 인코딩을 사용한다.
저장 장치(1530)는 인코딩된 영상을 저장한다. 일부 실시예에서, 저장 장치(1530)는 인코딩된 영상과 같은 디지털 정보를 저장할 수 있는 플래시 메모리 장치, 하드 디스크 또는 기타 유형의 비휘발성 메모리 장치이다. 일부 실시예에서, 저장 장치는 이동식(예컨대, 이동식 플래시 드라이브)이다. 저장된 인코딩된 영상은 이어서 데이터 전송 포트(1535)를 사용하여 비디오 카메라(1500) 외부로 전송될 수 있다.
데이터 전송 포트(1535)는 비디오 카메라(1500)의 저장 장치(1530)와 컴퓨터와 같은 외부 장치 사이에서 영상 또는 기타 데이터를 전송한다. 일부 실시예에서, 데이터 전송 포트(1535)는 컴퓨터와 통신하기 위해 USB(Universal Serial Bus) 또는 IEEE 1394 인터페이스(Fire Wire)와 같은 고처리율 프로토콜을 사용한다. 데이터 전송 포트(1535)는 또한 임의의 다른 유선 또는 무선 데이터 통신 프로토콜을 사용하여 컴퓨터와 통신할 수 있다.
사용자 입력 컨트롤(1550)은 사용자가 비디오 카메라(1500)의 다양한 구성요소의 설정을 조정할 수 있게 한다. 일부 실시예에서, 사용자 입력 컨트롤(1550)은 비디오 카메라 상의 물리 버튼으로서 구현된다. 대안으로서, 또는 결합하여, 일부 실시예는 사용자가 비디오 카메라의 다양한 설정을 그래픽적으로 탐색할 수 있게 하는 GUI를 포함한다. 일부 실시예에서, 사용자 입력 컨트롤(1550)은 사용자가 비디오 디코더(1520)의 설정을 조정할 수 있게 한다. 예를 들어, 사용자는 H.264 표준에 포함된 임의의 인코딩 모드를 사용하여 영상을 인코딩하도록 비디오 디코더를 설정할 수 있거나, 사용자는 I-프레임만 또는 H.264 표준의 다른 부분집합을 사용하도록 비디오 인코더(1520)를 설정할 수 있다.
일부 실시예는 비디오 디코더(1540)를 포함하고, 따라서 사용자는 인코딩된 영상을 볼 수 있다. 비디오 디코더(1540)는 비디오 인코더(1520)에 의해 인코딩되어 저장 장치(1530)에 저장된 영상을 디코딩할 수 있다. 일부 실시예에서, 비디오 디코더(1540)는 비디오 인코더(1520)의 일부인데, 그 이유는 비디오 인코더(1520)의 일부 실시예가 H.264 호환 인코딩된 비디오 시퀀스를 생성하기 위해 비디오 디코더를 포함하기 때문이다. 디지털 뷰어(1545)는 비디오 디코더(1540)에 의해 디코딩된 비디오 영상을 디스플레이한다. 일부 실시예에서, 디지털 뷰어는 사용자 입력 컨트롤(1550)과 연관된 GUI의 일부로서 구현된다.
II . 미디어 편집 응용 프로그램
일부 실시예는 들어오는 디지털 비디오의 상이한 형식을 구분할 수 있는 디지털 비디오를 가져오기 및 편집하는 미디어 편집 응용 프로그램을 제공한다. 시간 압축된 디지털 비디오가 가져오기될 때, 미디어 편집 응용 프로그램은 디지털 비디오를 트랜스코딩하고 트랜스코딩된 비디오를 저장 장치에 저장한다. 비시간 압축된 디지털 비디오가 가져오기될 때, 미디어 편집 응용 프로그램은 이 형식을 인식하고 들어오는 비디오를 트랜스코딩 없이 바로 저장 장치에 저장한다.
도 16은 일부 실시예의 이러한 미디어 편집 응용 프로그램(1600)을 나타낸 것이다. 이러한 미디어 편집 응용 프로그램의 일부 예는 iMovie® 및 Final Cut Pro®(둘다 Apple Inc.®에 의해 판매됨)를 포함한다. 미디어 편집 응용 프로그램(1600)은 컴퓨터(1605) 상에 있다. 일부 실시예에서, 컴퓨터(1605)는 미디어 편집에 특히 전용되어 있는 컴퓨터일 수 있거나, 수많은 다른 프로그램(예컨대, 워드 프로세서, 웹 브라우저, 컴퓨터 게임 응용 프로그램 등)을 포함하는 컴퓨터일 수 있다.
미디어 편집 응용 프로그램(1600)에 부가하여, 컴퓨터(1605)는 또한 인터페이스 관리자(1610) 및 캡처 모듈(1615)은 물론 저장 장치(1620)도 포함하고 있다. 인터페이스 관리자(1610)는 디지털 비디오 소스로부터 디지털 비디오 스트림을 수신한다. 이하에서 기술되는 카메라(1625)는 이러한 디지털 비디오 소스의 일례이다. 일부 실시예에서, 인터페이스 관리자는 (예컨대, FireWire 또는 USB 케이블을 통해, 직접 USB 포트를 통해, 무선으로, 기타) 디지털 비디오 소스에 연결되어 있는 컴퓨터의 포트(예컨대, FireWire 포트, USB 포트 등)를 통해 비디오 스트림을 수신하는 입력 드라이버(예컨대, FireWire 입력 드라이버, USB 입력 드라이버 등)이다.
인터페이스 관리자(1610)는 수신된 비디오 스트림을 캡처 모듈(1615)로 중계하고, 캡처 모듈(1615)은, 일부 실시예에서, 비디오 스트림을 하위 레벨 포트 관리자[인터페이스 관리자(1610)]로부터 미디어 편집 응용 프로그램(1600)으로 보낸다. 일부 실시예에서, 이 캡처 모듈(1615)은 Apple Inc.®의 QuickTime® Engine의 일부이다. 일부 실시예에서, 캡처 모듈(1615)은 실제로는 미디어 편집 응용 프로그램(1600)의 일부이다. 저장 장치(1620)는 디지털 비디오 소스로부터 수신된 비디오 클립을 저장한다. 일부 실시예에서, 저장 장치(1620)는 미디어 편집 응용 프로그램(1600)의 일부이기도 하다. 예를 들어, 저장 장치(1620)는 미디어 편집 응용 프로그램의 라이브러리일 수 있다. 다른 실시예에서, 저장 장치는, 도시된 바와 같이, 컴퓨터(1605)의 일부이다. 일부 실시예에서, 저장 장치(1620)는 단지 비디오 클립 이상의 것을 저장할 수 있다. 예를 들어, 저장 장치(1620)는 또한 미디어 편집 응용 프로그램(1600) 또는 컴퓨터(1605) 상에 존재하는 기타 응용 프로그램과 연관된 실행 파일 또는 기타 파일을 저장할 수 있다.
미디어 편집 응용 프로그램(1600)은 형식 인식 모듈(1630), 트랜스코더(1635), 및 축소판 발생기(1640)를 포함한다. 당업자는 일부 실시예의 미디어 편집 응용 프로그램이 이 도면에 도시되지 않은 다른 모듈, 예컨대 편집 모듈, 렌더링 엔진 등을 포함할 것임을 인식할 것이다.
형식 인식 모듈(1630)은 가져오기 시에 캡처 모듈(1615)로부터 디지털 비디오 클립을 수신하고 디지털 비디오의 형식을 식별한다. 일부 실시예에서, 이 식별은 디지털 비디오가 시간 압축되어 있는지 여부를 판정한다. 일부 실시예에서, 형식 인식 모듈(1630)은 형식을 식별하기 위해 디지털 비디오 클립의 메타데이터를 검사한다(메타데이터의 추가 설명에 대해서는 이하의 비디오 클립의 구조의 설명을 참조하기 바란다). 일부 실시예에서, 메타데이터는 디지털 비디오가 iFrame(비시간 압축된) 형식인지 시간 압축을 사용하는 다른 형식인지를 나타낸다. 일부 실시예에서, 카메라가 컴퓨터(1605)에 연결되자마자 형식 인식 모듈은 다양한 비디오 클립의 형식을 식별할 수 있다.
형식 인식 모듈(1630)이 들어오는 디지털 비디오 클립이 시간 압축되어 있지 않고 따라서 트랜스코딩될 필요가 없다는 것을 식별할 때, 형식 인식 모듈(1630)은 비디오 클립을 바로 저장 장치(1620)로 보낸다. 앞서 언급한 바와 같이, 이것은 미디어 편집 응용 프로그램(1600)의 라이브러리일 수 있거나, 다수의 응용 프로그램에 의해 공유되는 컴퓨터(1605) 상의 저장 장치일 수 있다. 이러한 디지털 비디오 클립을 가져오기하는 속도는, 일부 실시예에서, 비디오 클립 파일의 크기 및 카메라와 컴퓨터 사이의 연결 속도에 연계되어 있고, 클립의 트랜스코딩 또는 클립의 재생 속도에는 연계되어 있지 않다. 구체적으로는, 트랜스코딩이 없기 때문에, 가져오기 속도가 디코딩 및/또는 인코딩에 필요한 처리 능력에 연계되어 있지 않다. 게다가, 디지털 비디오 클립이 카메라 상의 랜덤 액세스 저장 장치에 저장되어 있을 때, 가져오기 속도는, 30분의 비디오를 가져오기 하는 데 30분이 필요하도록 테이프의 재생을 필요로 하는 테이프-기반 저장 장치로부터 판독하는 것으로 인해, 비디오 클립의 임의의 재생 속도에 관련되어 있지 않다. 일부 실시예는, 비디오 클립을 저장 장치(1620)로 바로 보내기보다는, 공간 압축을 제거하기 위해 들어오는 비디오 클립을 디코딩한다.
형식 인식 모듈(1630)이 들어오는 디지털 비디오가 시간 압축되어 있는 것을 식별할 때, 디지털 비디오는 트랜스코더(1635)로 보내진다. 일부 실시예에서, 트랜스코더(1635)는 디지털 비디오를 디코딩하고, 공간 압축만을 사용하여 비디오를 재인코딩한다. 따라서, 트랜스코더(1635)의 출력은 비시간 압축된 비디오이다. 이 트랜스코딩 프로세스는 일반적으로 동등한 길이의 비시간 압축된 비디오 클립보다 실질적으로 더 많은 시간이 걸릴 것이다. 일부 실시예에서, 트랜스코더는 비디오를 디코딩하고 이를 재인코딩하지 않는다.
일부 실시예에서, 트랜스코더 출력(비시간 압축된 비디오)은 축소판 발생기(1640)로 전송된다. 축소판 발생기(1640)는 비디오 클립 내의 각각의 디지털 비디오 화상에 대한 축소판을 발생한다. 축소판은 비디오 클립과 함께 저장 장치(1620)에 저장된다. 일부 실시예는 또한 저장 이전의 중간 단계로서 비시간 압축된 들어오는 비디오 클립을 형식 인식 모듈(1630)로부터 축소판 발생기(1640)로 전송한다. 게다가, 일부 실시예는 축소판 발생기를 포함하지 않으며, 따라서 비디오 클립과 함께 축소판을 저장하지 않는다.
앞서 언급한 바와 같이, 일부 실시예에서, 디지털 비디오 스트림이 카메라(1625)로부터 수신된다. 일부 실시예에서, 카메라(1625)는 디지털 비디오 카메라(700)와 같은 카메라일 수 있다. 카메라(1625)는 전송 모듈(1645) 및 비디오 클립 저장 장치(1650)를 포함한다. 비디오 클립 저장 장치는 상이한 형식으로 저장되어 있는 수많은 비디오 클립을 포함하고 있다. 예를 들어, 클립(1651)은 비시간 압축된 형식으로 저장되고, 클립(1652)은 720p 시간 압축된 형식으로 저장되며, 클립(1653)은 1680p 시간 압축된 형식으로 저장된다. 상기 섹션 I에서 살펴본 바와 같이, 일부 실시예는 사용자가 카메라에 의해 캡처된 각각의 비디오 클립의 녹화 형식을 선택할 수 있게 한다. 이 도면에 예시되고 이하에 기술되어 있는 바와 같이, 일부 실시예는 비디오 형식을 메타데이터로서 저장한다.
일부 실시예에서, 전송 모듈(1645)은 카메라(1625)의 출력 포트(예컨대, FireWire 또는 USB 포트)와 연관된 출력 드라이버이다. 일부 실시예에서, [카메라가 컴퓨터(1605)에 연결되어 있을 때] 카메라의 사용자 인터페이스 또는 미디어 편집 응용 프로그램(1600)의 사용자 인터페이스를 통해 비디오 카메라와 상호작용하는 사용자는 특정의 비디오 클립을 미디어 편집 응용 프로그램(1600)으로 전송하라고 카메라(1625)에 지시한다. 클립은 이어서 전송 모듈(1645)을 통해 컴퓨터(1605)로 전송된다.
도 16은 또한 카메라(1625) 상에 저장되어 있는 일부 실시예의 비디오 파일(1655)의 형식을 나타내고 있다. 비디오 파일(1655)은 비시간 압축된 비디오 클립의 예이다. 비디오 파일(1655)은 비디오 화상 데이터(1660), AAC(Advanced Audio Coding) 오디오 데이터(1665), 및 메타데이터(1670)를 포함하고 있다. 비디오 화상 데이터는, 이 예에서, 비시간 압축된 비디오 프레임을 포함하고, 클립(1652)의 경우에, 시간 압축된 비디오 프레임 데이터를 포함할 것이다. 일부 실시예에서, AAC 오디오 데이터(1665)는 미디어 편집 응용 프로그램에서 필요로 하는 특정의 형식의 오디오이다. 다른 실시예는 예를 들어, LPCM(linear pulse-code modulation) 오디오와 같은 다른 형태의 인코딩된 오디오 데이터를 가능하게 한다.
예시된 바와 같이, 메타데이터(1670)는 비디오 형식 유형(1675), 지오태그 데이터(1680), 'colr' 원자(1685) 및 기타 메타데이터(1690)를 포함한다. 비디오 형식 유형(1675)은 비디오의 인코딩 형식을 나타낸다. 즉, 형식 유형(1675)은 비디오가 iFrame 형식인지(비시간 압축되어 있는지)를 나타내고, 또한 비디오의 해상도 및/또는 비트 레이트도 나타낼 수 있다. 일부 실시예에서, 미디어 편집 응용 프로그램(1600)은 주어진 해상도에서 특정의 임계 품질을 유지하면서 비트 레이트가 iFrame 형식 데이터에 대한 특정의 임계값(예컨대, 24 Mbps) 미만일 것을 요구한다.
일부 실시예에서, 지오태그 데이터(1680)는 비디오 클립이 촬영된 곳에 관한 GPS 좌표 또는 기타 지리적 위치 정보를 나타낸다. 이 정보는 카메라 내의 지오로케이터 모듈(예컨대, GPS 수신기)에 기초하고 있다. 일부 실시예에서, 'colr' 원자(1685)는 상이한 디스플레이 장치의 색 공간 사이에서 적절히 변환하는 데 사용된다. 구체적으로는, 'colr' 원자는 소프트웨어 감마 색 공간 변환이 사용되어야만 한다는 것을 나타낸다. 일부 실시예에서, 'colr' 원자 내의 'nclc' 태그는 (예컨대, 비디오 클립의 재생 시에) 색 공간 변환이 소프트웨어 또는 하드웨어 경로를 거칠 수 있는지를 식별하는 데 사용된다.
일부 실시예는 비디오 클립과 함께 다른 메타데이터(1690)도 저장한다. 이 메타데이터는 비디오 클립이 캡처될 때의 조명에 관한 조명 정보, 비디오 클립에 관한 케이던스(cadence) 및 프레임 레이트(예컨대, 초당 25, 30 프레임 등) 정보, 비트 깊이(예컨대, 8 비트) 정보 등을 포함할 수 있다. 일부 실시예에서, 비디오 클립이 미디어 편집 응용 프로그램(1600)으로 전송될 때, 메타데이터(1670)는 비디오 클립과 함께 전송되고 미디어 편집 응용 프로그램에 의해 사용된다. 예를 들어, 형식 인식 모듈(1630)의 일부 실시예는 메타데이터(1670)로부터 비디오 형식 유형을 판정한다.
미디어 편집 응용 프로그램의 일부 실시예는 타당한 비시간 압축된 비디오에 대한 요구사항을 지정한다. 예를 들어, 일부 실시예는 비디오 인코딩 및 압축이 Baseline, Main, 또는 High Profile 인코딩을 사용하는 H.264 인코딩 방식에 부합하도록 지정한다. 일부 실시예에서, 상이한 프로필은 상이한 능력 집합이다. 일부 실시예는 또한 카메라 상의 엔트로피 인코더[예컨대, 도 7의 유닛(725)]가 CAVLC(Context-based Adaptive Variable Length Coding) 또는 CABAC(Context-based Adaptive Binary Arithmetic Coding)를 사용하는지를 지정한다. 일부 실시예는 프레임 레이트(예컨대, 단지 25 또는 30 fps), 비트 깊이(예컨대, 8 비트), 파일 형식(예컨대, .mp4 또는 .mov), 컬러 태깅(예컨대, 'nclc' 컬러 파라미터 유형을 갖는 'colr' 원자가 존재해야만 한다는 것), 최대 비트 레이트(예컨대, 24 Mbps) 등과 같은 다른 요구사항을 지정한다.
도 17은 카메라(1625)와 같은 디지털 비디오 소스로부터 컴퓨터 내로 가져오기되는 비디오 클립을 저장하는 일부 실시예의 프로세스(1700)를 개념적으로 나타낸 것이다. 일부 실시예에서, 프로세스(1700)는 미디어 편집 응용 프로그램[예컨대, 응용 프로그램(1600)]에 의해 수행된다. 프로세스는 디지털 비디오 소스로부터 비디오 클립을 수신하는 것(1705)으로 시작한다. 비디오 클립을 수신하는 것은 컴퓨터의 사용자가 사용자 인터페이스에서 가져오기 옵션을 선택하거나 비디오 클립 아이콘을 카메라 폴더로부터 컴퓨터 폴더로 드래그하는 것에 의해 시작될 수 있다. 예를 들어, 비디오가 카메라에서 랜덤 액세스 저장 장치(예컨대, 하드 디스크, 플래시 메모리 등)에 저장될 때, 사용자는 비디오 카메라에 대한 컴퓨터 상의 폴더를 열고 카메라 상의 비디오 파일 각각에 대한 아이콘을 볼 수 있다. 사용자는 원하는 비디오 클립에 대한 아이콘을 컴퓨터 상의 폴더로 드래그하여 전송을 시작하기 위해 커서 제어기를 사용할 수 있다. 비디오 클립을 수신하는 것은 또한 카메라를 컴퓨터 등의 입력 포트에 연결시킴으로써 자동으로 시작될 수 있다.
프로세스는 이어서 비디오 클립의 비디오 형식을 식별한다(1710). 앞서 언급한 바와 같이, 일부 실시예에서, 비디오 카메라는 비디오 클립을 다수의 상이한 형식으로 인코딩 및 저장한다. 예를 들어, 비디오 카메라는 공간 압축만을 수행함으로써 비디오 클립을 인코딩하거나, 공간 및 시간 압축 둘다를 수행함으로써 비디오 클립을 인코딩할 수 있다. 일부 실시예에서, 프로세스는 비디오 형식을 나타내는, 카메라 상에 저장되어 있고 비디오 클립과 함께 전송된 메타데이터에 기초하여 비디오 형식을 식별한다. 다른 실시예는 비디오 화상 데이터를 검사함으로써 인코딩의 유형을 인식한다.
프로세스(1700)는 이어서 비디오가 시간 압축되어 있는지를 판정한다(1715). 이것은 비디오 형식의 식별에 기초한다. 비디오가 시간 압축되어 있지 않을 때, 프로세스는 비디오 클립을 그의 기본 형식으로 저장한다(1720). 즉, 비디오가 시간 압축되어 있지 않을 때 트랜스코딩이 필요하지 않고, 비디오 클립이 어떤 처리도 없이 즉각 저장될 수 있다.
비디오가 시간 압축되어 있을 때, 프로세스는 시간 압축을 제거하기 위해 비디오를 트랜스코딩한다(1725). 이상에서 기술한 바와 같이, 일부 실시예의 트랜스코딩 프로세스는 비디오를 디코딩하고, 이어서 공간 압축만을 사용하여 비디오를 재인코딩한다. 이 트랜스코딩 동작은 계산량이 많고 시간이 많이 걸린다. 프로세스는 이어서 트랜스코딩된 비디오를 저장한다(1730). 비디오를 (기본 형식 또는 트랜스코딩된 형식으로) 저장한 후에, 프로세스(1700)는 이어서 종료한다.
III . 컴퓨터 시스템
상기한 특징 및 응용의 다수는 컴퓨터 판독가능 저장 매체(컴퓨터 판독가능 매체라고도 함)에 기록된 일련의 명령어로서 지정되는 소프트웨어 프로세스로서 구현된다. 이들 명령어는, 하나 이상의 계산 요소(들)(예컨대, 프로세서 또는 ASIC 및 FPGA와 같은 다른 계산 요소)에 의해 실행될 때, 계산 요소(들)로 하여금 명령어에 나타낸 동작을 수행하게 한다. 컴퓨터는 그의 가장 넓은 의미로 보아야 하고, 프로세서를 갖는 임의의 전자 장치를 포함할 수 있다. 컴퓨터 판독가능 매체의 예는, CD-ROM, 플래시 드라이브, RAM 칩, 하드 드라이브, EPROM 등을 포함하지만, 이들로 제한되지 않는다. 컴퓨터 판독가능 매체는 무선으로 또는 유선 연결을 통해 전달되는 반송파 및 전자 신호를 포함하지 않는다.
본 명세서에서, "소프트웨어"라는 용어는 프로세서에서 처리하기 위해 메모리 내로 판독될 수 있는, 판독 전용 메모리에 존재하는 펌웨어 또는 자기 저장 장치에 저장된 응용 프로그램을 포함하는 것으로 보아야 한다. 또한, 일부 실시예에서, 다수의 소프트웨어 발명이 개별 소프트웨어 발명으로 있으면서 큰 프로그램의 하위 부분으로서 구현될 수 있다. 일부 실시예에서, 다수의 소프트웨어 발명이 또한 개별 프로그램으로서 구현될 수 있다. 마지막으로, 다같이 본 명세서에 기술된 소프트웨어 발명을 구현하는 개별 프로그램의 임의의 조합이 본 발명의 범위 내에 속한다. 일부 실시예에서, 소프트웨어 프로그램은, 하나 이상의 컴퓨터 시스템에서 동작하도록 설치될 때, 소프트웨어 프로그램의 동작을 실행하고 수행하는 하나 이상의 특정의 기계 구현을 정의한다.
도 18은 본 발명의 일부 실시예가 구현되는 컴퓨터 시스템을 나타낸 것이다. 이러한 컴퓨터 시스템은 다양한 유형의 컴퓨터 판독가능 매체 및 다양한 다른 유형의 컴퓨터 판독가능 매체에 대한 인터페이스를 포함한다. 당업자는 또한 일부 실시예의 디지털 비디오 카메라가 또한 다양한 유형의 컴퓨터 판독가능 매체를 포함한다는 것에 주목할 것이다. 컴퓨터 시스템(1800)은 버스(1805), 프로세서(1810), 그래픽 처리 장치(GPU)(1820), 시스템 메모리(1825), 판독 전용 메모리(1830), 영구 저장 장치(1835), 입력 장치(1840), 및 출력 장치(1845)를 포함한다.
버스(1805)는 컴퓨터 시스템(1800)의 다수의 내부 장치를 통신 연결시키는 모든 시스템, 주변 장치, 및 칩셋 버스를 모두 합하여 나타낸 것이다. 예를 들어, 버스(1805)는 프로세서(1810)를 판독 전용 메모리(1830), GPU(1820), 시스템 메모리(1825) 및 영구 저장 장치(1835)와 통신 연결시킨다.
이들 다양한 메모리 장치로부터, 프로세서(1810)는 본 발명의 프로세스를 실행하기 위해, 실행할 명령어 및 처리할 데이터를 검색한다. 일부 실시예에서, 프로세서는 FPGA(Field Programmable Gate Array), ASIC 또는 명령어를 실행하는 다양한 다른 전자 구성요소를 포함한다. 일부 명령어가 GPU(1820)로 전달되어 GPU(1820)에 의해 실행된다. GPU(1820)는 다양한 계산을 오프로드하거나 프로세서(1810)에 의해 제공되는 이미지 처리를 보완할 수 있다. 일부 실시예에서, 이러한 기능은 CoreImage의 커널 쉐이딩 언어(kernel shading language)를 사용하여 제공될 수 있다.
판독 전용 메모리(ROM)(1830)는 컴퓨터 시스템의 프로세서(1810) 및 다른 모듈에서 필요로 하는 정적 데이터 및 명령어를 저장한다. 한편, 영구 저장 장치(1835)는 판독 및 기록 메모리 장치이다. 이 장치는 컴퓨터 시스템(1800)이 꺼져 있을 때에도 명령어 및 데이터를 저장하고 있는 비휘발성 메모리 장치이다. 본 발명의 일부 실시예는 대용량 저장 장치(예컨대, 자기 또는 광 디스크 및 그의 대응하는 디스크 드라이브)를 영구 저장 장치(1835)로서 사용한다.
다른 실시예는 이동식 저장 장치(예컨대, 플로피 디스크, 플래시 드라이브, 또는 ZIP® 디스크, 및 그의 대응하는 디스크 드라이브)를 영구 저장 장치로서 사용한다. 영구 저장 장치(1835)와 같이, 시스템 메모리(1825)도 판독 및 기록 메모리 장치이다. 그러나, 저장 장치(1835)와 달리, 시스템 메모리는 랜덤 액세스 메모리와 같은 휘발성 판독 및 기록 메모리이다. 시스템 메모리는 런타임 시에 프로세서가 필요로 하는 명령어 및 데이터의 일부를 저장한다. 일부 실시예에서, 본 발명의 프로세스가 시스템 메모리(1825), 영구 저장 장치(1835) 및/또는 판독 전용 메모리(1830)에 저장된다. 예를 들어, 다양한 메모리 장치는 일부 실시예에 따른 멀티미디어 항목을 처리하는 명령어를 포함한다. 이들 다양한 메모리 장치로부터, 프로세서(1810)는 일부 실시예의 프로세스를 실행하기 위해, 실행할 명령어 및 처리할 데이터를 검색한다.
버스(1805)는 또한 입력 및 출력 장치(1840, 1845)에 연결된다. 입력 장치는 사용자가 컴퓨터 시스템으로 정보를 전달하고 명령을 선택할 수 있게 한다. 입력 장치(1840)는 영숫자 키보드 및 포인팅 장치("커서 제어 장치"라고도 함)를 포함하고 있다. 출력 장치(1845)는 컴퓨터 시스템에 의해 발생된 이미지를 디스플레이한다. 출력 장치는 프린터 및 CRT(cathode ray tube) 또는 LCD(liquid crystal display)와 같은 디스플레이 장치를 포함한다.
마지막으로, 도 18에 도시된 바와 같이, 버스(1805)는 또한 네트워크 어댑터(도시 생략)를 통해 컴퓨터(1800)를 네트워크(1865)에 연결시킨다. 이러한 방식으로, 컴퓨터는 컴퓨터들의 네트워크[예컨대, LAN(local area network), WAN(wide area network) 또는 인트라넷], 또는 네트워크들의 네트워크, 예컨대 인터넷의 일부일 수 있다. 컴퓨터 시스템(1800)의 구성요소의 일부 또는 전부가 본 발명과 관련하여 사용될 수 있다.
일부 실시예는 마이크로프로세서, 기계 판독가능 또는 컴퓨터 판독가능 매체(대안으로서, 컴퓨터 판독가능 저장 매체, 기계 판독가능 매체, 또는 기계 판독가능 저장 매체라고 함)에 컴퓨터 프로그램 명령어를 저장하는 저장 장치 및 메모리와 같은 전자 구성요소를 포함하고 있다. 이러한 컴퓨터 판독가능 매체의 일부 예는 RAM, ROM, CD-ROM(read-only compact disc), CD-R(recordable compact disc), CD-RW(rewritable compact disc), 판독 전용 DVD(read-only digital versatile disc)(예를 들어, DVD-ROM, 2층 DVD-ROM), 각종의 기록가능/재기록가능(recordable/rewritable) DVD(예를 들어, DVD-RAM, DVD-RW, DVD+RW 등), 플래시 메모리(예를 들어, SD 카드, 미니-SD 카드, 마이크로-SD 카드 등), 자기 및/또는 고상 하드 드라이브, 판독 전용 및 기록가능 블루레이® 디스크, 초밀도(ultra density) 광 디스크, 임의의 다른 광 또는 자기 매체, 및 플로피 디스크를 포함한다. 컴퓨터 판독가능 매체는 적어도 하나의 프로세서에 의해 실행될 수 있는 컴퓨터 프로그램을 저장할 수 있고, 다양한 동작을 수행하는 일련의 명령어를 포함한다. 일련의 명령어를 저장하고 실행하도록 구성된 하드웨어 장치의 예는 ASIC(application specific integrated circuit), FPGA(field programmable gate array), PLD(programmable logic device), ROM 및 RAM 장치를 포함하지만, 이들로 제한되지 않는다. 컴퓨터 프로그램 또는 컴퓨터 코드의 예는 컴파일러에 의해 생성된 것과 같은 기계 코드, 및 인터프리터를 사용하여 컴퓨터, 전자 구성요소, 또는 마이크로프로세서에 의해 실행되는 상위 레벨 코드를 포함하는 파일을 포함한다.
본 출원의 본 명세서 및 임의의 청구항에서 사용되는 바와 같이, "컴퓨터", "서버", "프로세서", 및 "메모리"라는 용어는 모두 전자 또는 다른 기술 장치를 말한다. 이들 용어는 사람 또는 사람의 그룹을 제외한다. 본 명세서의 목적상, '디스플레이' 또는 '디스플레이하는'이라는 용어는 전자 장치 상에 디스플레이하는 것을 의미한다. 본 출원의 본 명세서 및 임의의 청구항에서 사용되는 바와 같이, "컴퓨터 판독가능 매체" 및 "컴퓨터 판독가능 매체들"이라는 용어는 컴퓨터에 의해 판독될 수 있는 형태로 정보를 저장하는 유형의 물리적 물체(tangible, physical object)로 전적으로 제한된다. 이들 용어는 임의의 무선 신호, 유선 다운로드 신호, 및 임의의 다른 사용후 삭제 신호(ephemeral signal)를 제외한다.
본 발명이 다수의 구체적인 상세를 참조하여 기술되어 있지만, 당업자는 본 발명이 본 발명의 사상을 벗어나지 않고 다른 특정의 형태로 구현될 수 있다는 것을 인식할 것이다. 또한, 다수의 도면(도 8 및 도 11을 포함함)은 프로세스를 개념적으로 나타내고 있다. 이들 프로세스의 특정의 동작이 도시되고 기술된 바로 그 순서로 수행되지 않을 수 있다. 특정의 동작이 하나의 연속적인 일련의 동작으로서 수행되지 않을 수 있고, 다른 특정의 동작이 다른 실시예에서 수행될 수 있다. 게다가, 프로세스가 몇개의 서브프로세스를 사용하여 또는 더 큰 매크로 프로세스의 일부로서 구현될 수 있다.

Claims (50)

  1. 비디오 편집 시스템으로서,
    비디오 카메라 상에 저장되며 복수의 상이한 인코딩 형식들에 따라 인코딩되어 있는 상이한 비디오 클립들을 식별하는 제1 모듈;
    (i) 상기 비디오 카메라 상에 저장된 비디오 클립들을 수신하며, (ii) 인트라프레임 형식으로만 상기 비디오 카메라 상에 인코딩되어 있는 비디오 클립들의 제1 집합을 상기 시스템의 저장 장치에 저장하는 제2 모듈; 및
    (i) 적어도 부분적으로 인터프레임 형식으로 상기 비디오 카메라 상에 인코딩되어 있는 비디오 클립들의 제2 집합을 트랜스코딩하며, (ii) 상기 트랜스코딩된 비디오 클립들의 제2 집합을 상기 저장 장치에 저장하는 제3 모듈
    을 포함하는 비디오 편집 시스템.
  2. 제1항에 있어서, 상기 인트라프레임 형식은, 상기 비디오 클립들에서의 시퀀스들이 상기 비디오 카메라에 의해 최초로 인코딩되었던 기본 형식(native format)인 비디오 편집 시스템.
  3. 제1항에 있어서, 상기 인트라프레임 형식은, 어떠한 트랜스코딩도 수행하지 않고 사용자가 상기 비디오 클립들을 편집할 수 있게 하는 형식인 비디오 편집 시스템.
  4. 제1항에 있어서, 상기 인트라프레임 형식은, 960x540 및 1280x720 중 적어도 하나를 지정하는 해상도 설정, 및 24 메가비트/초(Mbps)까지를 지정하는 비트 레이트 설정에 의해 정의되는 비디오 편집 시스템.
  5. 프로그램을 저장하는 머신 판독가능 매체로서,
    상기 프로그램은, 적어도 하나의 처리 유닛에 의해 실행되는 경우, 상기 머신 판독가능 매체를 포함하는 장치로 비디오 클립들을 가져오기하며,
    상기 프로그램은,
    상기 장치로의 비디오 카메라의 연결을 검출하는 명령어 집합;
    상기 비디오 카메라에 저장되며 적어도 부분적으로 인터프레임 인코딩되어 있는 제1 비디오 클립을 식별하는 명령어 집합;
    상기 제1 비디오 클립을 상기 장치로 전송하는 동안, 상기 제1 비디오 클립을 제1 형식으로부터 제2 형식으로 트랜스코딩하는 명령어 집합;
    상기 비디오 카메라에 저장되며 인트라프레임 인코딩만되어 있는 제2 비디오 클립을 식별하는 명령어 집합; 및
    상기 제2 비디오 클립의 인코딩을 수정하지 않고, 상기 제2 비디오 클립을 상기 장치로 전송하는 명령어 집합
    을 포함하는 머신 판독가능 매체.
  6. 제5항에 있어서, 상기 제1 형식은, 상기 비디오 클립 내의 영상들의 시퀀스가 최초로 인코딩되었던 기본 형식이며, 상기 제2 형식은, 상기 제1 형식과 상이한 비기본 형식인 머신 판독가능 매체.
  7. 제5항에 있어서, 상기 제1 비디오 클립을 트랜스코딩하는 명령어 집합은,
    상기 제1 비디오 클립을 디코딩하는 명령어 집합; 및
    인트라프레임 인코딩만을 이용하여, 상기 디코딩된 제1 비디오 클립을 인코딩하는 명령어 집합
    을 포함하는 머신 판독가능 매체.
  8. 제5항에 있어서, 상기 적어도 부분적으로 인터프레임 인코딩되어 있는 제1 비디오 클립은, 상이한 비디오 화상을 참조하여 인코딩되어 있는 적어도 하나의 비디오 화상을 포함하며, 상기 인트라프레임 인코딩만되어 있는 제2 비디오 클립은, 다른 비디오 화상들을 참조하지 않고 인코딩되어 있는 비디오 화상들만을 포함하는 머신 판독가능 매체.
  9. 제5항에 있어서, 상기 제2 비디오 클립을 전송하는 시간은, 상기 제2 비디오 클립의 크기, 및 상기 비디오 카메라와 상기 장치 사이의 연결의 속도에만 관련되는 머신 판독가능 매체.
  10. 비디오 화상들의 시퀀스를 캡처하는 영상 감지 회로;
    사용자가, 시간 압축된 인코딩 형식 및 비시간 압축된 인코딩 형식을 포함하는 복수의 비디오 인코딩 형식들 중에서 비디오 인코딩 형식을 선택할 수 있게 하는 사용자 인터페이스; 및
    상기 사용자 인터페이스를 통해 상기 사용자에 의해 선택된 형식에 따라 상기 비디오 화상들을 인코딩하는 인코딩 회로
    를 포함하는 비디오 카메라.
  11. 제10항에 있어서, 상기 비시간 압축된 인코딩 형식은, 비디오 화상들의 특정 시퀀스의 각 비디오 화상이 상기 비디오 화상들의 특정 시퀀스의 어떠한 다른 비디오 화상들도 참조하지 않고 인코딩되는 인코딩 형식이며, 상기 시간 압축된 인코딩 형식은, 상기 비디오 화상들의 특정 시퀀스의 적어도 하나의 비디오 화상이 상기 비디오 화상들의 특정 시퀀스의 적어도 하나의 다른 비디오 화상을 참조하여 인코딩되는 인코딩 형식인 비디오 카메라.
  12. 제10항에 있어서, 상기 사용자 인터페이스는,
    상이한 비디오 인코딩 형식들의 목록을 디스플레이하는 디스플레이; 및
    상기 상이한 비디오 인코딩 형식들 중 하나의 비디오 인코딩 형식을 선택하기 위해서 사용자 상호작용을 수신하는 사용자 입력 컨트롤들
    을 포함하는 비디오 카메라.
  13. 제10항에 있어서, 상기 인코딩 회로는,
    상기 선택된 비디오 인코딩 형식에 따라 영상 데이터의 블록들에 대해 DCT(discrete cosine transform) 연산들을 수행하는 DCT 유닛;
    상기 선택된 비디오 인코딩 형식에 따라 상기 DCT 유닛의 출력인 DCT 계수들에 대해 양자화 연산들을 수행하는 양자화기 유닛; 및
    상기 선택된 비디오 인코딩 형식에 따라 입력 데이터를 비트스트림으로 인코딩하는 엔트로피 인코딩 연산들을 수행하는 엔트로피 인코더
    를 포함하는 비디오 카메라.
  14. 제13항에 있어서,
    상기 선택된 비디오 인코딩 형식을 식별하고, 상기 선택된 비디오 인코딩 형식에 따라 인코딩하기 위한 설정들의 집합을 검색하며, 상기 DCT 연산들, 상기 양자화 연산들 및 엔트로피 인코딩 연산들을 수행하기 위해 상기 검색된 설정들의 집합을 상기 인코딩 회로로 전송하는 비디오 압축 제어기를 더 포함하는 비디오 카메라.
  15. 제10항에 있어서, 상기 인코딩 회로는 또한 상기 비디오 화상들을 인코딩하기 전에 상기 비디오 화상들의 폭을 감소시키는 비디오 카메라.
  16. 비디오 녹화 장치에 대한 복수의 비디오 형식들을 정의하는 방법으로서,
    적어도 부분적으로 인터프레임 형식으로 비디오 클립들을 인코딩하는 제1 비디오 형식에 대한 복수의 파라미터들을 지정하는 단계;
    인트라프레임 전용 형식으로 비디오 클립들을 인코딩하는 제2 비디오 형식에 대한 복수의 파라미터들을 지정하는 단계; 및
    상기 제2 비디오 형식을 이용하여 인코딩된 복수의 비디오 영상들 각각이 복수의 슬라이스들로서 인코딩되는 것을 지정하는 단계 - 특정의 비디오 영상의 복수의 슬라이스들은 비디오 디코딩 장치의 복수의 처리 유닛들에 의해 디코딩하기 위한 것임 -
    를 포함하는 방법.
  17. 제16항에 있어서, 상기 비디오 녹화 장치에 대한 그래픽 사용자 인터페이스를 정의하는 단계 - 상기 그래픽 사용자 인터페이스는, 사용자가 상기 제1 비디오 형식과 상기 제2 비디오 형식 사이에서 선택할 수 있게 함 - 를 더 포함하는 방법.
  18. 제16항에 있어서, 상기 특정의 비디오 영상의 상기 복수의 슬라이스들은 상기 비디오 디코딩 장치의 상기 복수의 처리 유닛들에 의해 동시 디코딩을 더 하기 위한 것인 방법.
  19. 복수의 처리 유닛들을 갖는 비디오 디코딩 장치의 머신 판독가능 매체로서,
    상기 머신 판독가능 매체는, 상기 비디오 디코딩 장치의 적어도 하나의 처리 유닛에 의해 실행되는 경우, 비디오 클립을 디코딩하는 프로그램을 저장하며,
    상기 프로그램은,
    복수의 비디오 영상들을 포함하는 비디오 클립을 수신하는 명령어 집합 - 상기 비디오 클립은 시간 압축된 인코딩 형식 및 비시간 압축된 인코딩 형식을 포함하는 복수의 비디오 인코딩 형식들 중에서 선택된 인코딩 형식으로 인코딩 됨 -;
    상기 비디오 클립이 비시간 인코딩되어 있으며, 복수의 비디오 영상들이 복수의 슬라이스들로서 인코딩되어 있다고 결정하는 명령어 집합; 및
    특정의 비디오 영상의 각각의 슬라이스에 대해, 디코딩을 위해 상기 비디오 디코딩 장치의 특정의 처리 유닛에 상기 슬라이스를 할당하는 명령어 집합
    을 포함하는 머신 판독가능 매체.
  20. 제19항에 있어서, 상기 프로그램은,
    상기 특정의 비디오 영상이 캡처된 특정의 폭을 식별하는 명령어 집합; 및
    상기 특정의 비디오 영상을 디코딩한 후에 상기 특정의 비디오 영상의 폭을 상기 특정의 폭으로 증가시키는 명령어 집합
    을 더 포함하는 머신 판독가능 매체.
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
KR1020127009096A 2009-09-10 2010-09-09 디지털 비디오 레코더의 비디오 형식 KR101361237B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US24139409P 2009-09-10 2009-09-10
US61/241,394 2009-09-10
US12/636,699 2009-12-11
US12/636,699 US8554061B2 (en) 2009-09-10 2009-12-11 Video format for digital video recorder
US12/781,813 US8737825B2 (en) 2009-09-10 2010-05-17 Video format for digital video recorder
US12/781,813 2010-05-17
PCT/US2010/048324 WO2011031902A1 (en) 2009-09-10 2010-09-09 Video editing and reformatting for digital video recorder

Publications (2)

Publication Number Publication Date
KR20120056867A KR20120056867A (ko) 2012-06-04
KR101361237B1 true KR101361237B1 (ko) 2014-02-11

Family

ID=43647834

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127009096A KR101361237B1 (ko) 2009-09-10 2010-09-09 디지털 비디오 레코더의 비디오 형식

Country Status (9)

Country Link
US (2) US8737825B2 (ko)
EP (2) EP2476256B1 (ko)
JP (3) JP5555775B2 (ko)
KR (1) KR101361237B1 (ko)
CN (2) CN102484712B (ko)
AU (1) AU2010292204B2 (ko)
BR (1) BR112012005549B1 (ko)
HK (1) HK1169532A1 (ko)
WO (1) WO2011031902A1 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8223845B1 (en) 2005-03-16 2012-07-17 Apple Inc. Multithread processing of video frames
US8737825B2 (en) 2009-09-10 2014-05-27 Apple Inc. Video format for digital video recorder
US8554061B2 (en) 2009-09-10 2013-10-08 Apple Inc. Video format for digital video recorder
US9762639B2 (en) 2010-06-30 2017-09-12 Brightcove Inc. Dynamic manifest generation based on client identity
US9838450B2 (en) 2010-06-30 2017-12-05 Brightcove, Inc. Dynamic chunking for delivery instances
AU2011201404B1 (en) * 2011-03-28 2012-01-12 Brightcove Inc. Transcodeless on-the-fly ad insertion
WO2013076915A1 (ja) * 2011-11-25 2013-05-30 三菱電機株式会社 撮像装置、映像記録装置、映像表示装置、映像監視装置、映像監視システムおよび映像監視方法
JP2013141064A (ja) * 2011-12-28 2013-07-18 Jvc Kenwood Corp 撮像装置、及び制御方法
US8488943B1 (en) * 2012-01-31 2013-07-16 Google Inc. Trimming media content without transcoding
US9241167B2 (en) * 2012-02-17 2016-01-19 Microsoft Technology Licensing, Llc Metadata assisted video decoding
US8855466B2 (en) 2012-05-01 2014-10-07 Eldon Technology Limited Separate video file for I-frame and non-I-frame data to improve disk performance in trick play
CN102801813B (zh) * 2012-08-27 2015-11-25 广东利为网络科技有限公司 一种从终端设备自动上传影音文件的装置及方法
US9112939B2 (en) 2013-02-12 2015-08-18 Brightcove, Inc. Cloud-based video delivery
CN105493187A (zh) * 2013-10-04 2016-04-13 英特尔公司 用于动态调整视频回放速度的技术
US9386067B2 (en) * 2013-12-30 2016-07-05 Sonic Ip, Inc. Systems and methods for playing adaptive bitrate streaming content by multicast
US9911460B2 (en) 2014-03-24 2018-03-06 Microsoft Technology Licensing, Llc Fast and smart video trimming at frame accuracy on generic platform
CN106856571B (zh) 2015-12-09 2019-12-06 阿里巴巴集团控股有限公司 一种转码方法及装置
CN105681787B (zh) * 2016-01-22 2019-01-18 北京大学 对时空信号进行编码的方法和装置
US11228758B2 (en) 2016-01-22 2022-01-18 Peking University Imaging method and device
WO2017193374A1 (en) 2016-05-13 2017-11-16 SZ DJI Technology Co., Ltd. System and method for presenting a video via transcode
KR20180036153A (ko) * 2016-09-30 2018-04-09 주식회사 요쿠스 영상 편집 시스템 및 방법
EP4088453A4 (en) 2020-02-14 2023-05-10 Beijing Bytedance Network Technology Co., Ltd. COLOCATED IMAGE INDICATION IN VIDEO BITSTREAMS
US11004471B1 (en) * 2020-03-24 2021-05-11 Facebook, Inc. Editing portions of videos in a series of video portions
KR20230004028A (ko) * 2021-06-30 2023-01-06 삼성전자주식회사 제어 방법 및 그 방법을 이용하는 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6078617A (en) 1997-06-06 2000-06-20 Fujitsu Limited Apparatus and method for coding and decoding video images
US20050105624A1 (en) 2003-09-19 2005-05-19 Goro Kato Image processing apparatus and method, program, and recording medium
US7110025B1 (en) 1997-05-28 2006-09-19 Eastman Kodak Company Digital camera for capturing a sequence of full and reduced resolution digital images and storing motion and still digital image data

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5111292A (en) 1991-02-27 1992-05-05 General Electric Company Priority selection apparatus as for a video signal processor
US5577191A (en) 1994-02-17 1996-11-19 Minerva Systems, Inc. System and method for digital video editing and publishing, using intraframe-only video data in intermediate steps
GB2318246B (en) * 1996-10-09 2000-11-15 Sony Uk Ltd Processing digitally encoded signals
JP3787398B2 (ja) 1996-11-27 2006-06-21 キヤノン株式会社 画像処理装置及びその方法
JP3592025B2 (ja) 1997-03-11 2004-11-24 キヤノン株式会社 撮影画像記録装置
US6115420A (en) * 1997-03-14 2000-09-05 Microsoft Corporation Digital video signal encoder and encoding method
JP4427827B2 (ja) * 1998-07-15 2010-03-10 ソニー株式会社 データ処理方法、データ処理装置及び記録媒体
US20010004417A1 (en) * 1999-12-21 2001-06-21 Ageishi Narutoshi Video editing system
US6834080B1 (en) * 2000-09-05 2004-12-21 Kabushiki Kaisha Toshiba Video encoding method and video encoding apparatus
JP2003046758A (ja) 2001-07-31 2003-02-14 Canon Inc 撮像装置、情報処理装置、画像処理装置およびその方法、並びに、画像処理システム
US20030123546A1 (en) 2001-12-28 2003-07-03 Emblaze Systems Scalable multi-level video coding
US7319720B2 (en) 2002-01-28 2008-01-15 Microsoft Corporation Stereoscopic video
US20070074269A1 (en) 2002-02-22 2007-03-29 Hai Hua Video processing device, video recorder/playback module, and methods for use therewith
JP4015914B2 (ja) * 2002-09-26 2007-11-28 富士フイルム株式会社 デジタルカメラ
JP3905450B2 (ja) * 2002-09-26 2007-04-18 富士フイルム株式会社 デジタルスチルカメラ
JP4196640B2 (ja) * 2002-10-21 2008-12-17 株式会社日立製作所 データ変換方法
JP3750858B2 (ja) 2002-11-26 2006-03-01 ソニー株式会社 撮像装置及び記録方法
JP2004187161A (ja) 2002-12-05 2004-07-02 Matsushita Electric Ind Co Ltd 動画データ処理装置および動画データ処理方法
JP3873921B2 (ja) * 2003-04-03 2007-01-31 ソニー株式会社 記録装置および方法
US6958757B2 (en) 2003-07-18 2005-10-25 Microsoft Corporation Systems and methods for efficiently displaying graphics on a display device regardless of physical orientation
JP2007519301A (ja) * 2003-09-30 2007-07-12 ドラプレット テクノロジー インコーポレイテッド 時間型順序外圧縮及びマルチソース圧縮率制御のシステム及び方法
US7528840B1 (en) 2003-10-01 2009-05-05 Apple Inc. Optimizing the execution of media processing routines using a list of routine identifiers
JP4515886B2 (ja) * 2003-10-28 2010-08-04 パナソニック株式会社 面内予測符号化方法
JP3826934B2 (ja) 2003-12-04 2006-09-27 コニカミノルタビジネステクノロジーズ株式会社 画像形成装置、画像形成システム、画像形成方法、画像形成制御プログラム、および画像形成制御プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2005175974A (ja) * 2003-12-12 2005-06-30 Canon Inc 撮像装置
JP4401861B2 (ja) * 2004-04-30 2010-01-20 キヤノン株式会社 画像処理装置およびその制御方法
JP2005348258A (ja) * 2004-06-04 2005-12-15 Canon Inc 撮影装置及び方法、並びにプログラム及び記憶媒体
DE602005020098D1 (de) 2004-10-14 2010-05-06 Sony Corp Videogerät, Verfahren zur Steuerung des Videoausgangs und Verfahren zur Wiedergabesteuerung
US20060133476A1 (en) 2004-11-12 2006-06-22 Page Warren S Digital in-car video surveillance system
US20090135252A1 (en) * 2005-02-09 2009-05-28 Matsushita Electric Industrial Co., Ltd. Monitoring camera device, monitoring system using the same, and monitoring image transmission method
JP4616057B2 (ja) * 2005-04-13 2011-01-19 パイオニア株式会社 画像符号化装置及び画像符号化方法
US20090123066A1 (en) * 2005-07-22 2009-05-14 Mitsubishi Electric Corporation Image encoding device, image decoding device, image encoding method, image decoding method, image encoding program, image decoding program, computer readable recording medium having image encoding program recorded therein,
JP4534935B2 (ja) * 2005-10-04 2010-09-01 株式会社日立製作所 トランスコーダ、記録装置及びトランスコード方法
JP2007135069A (ja) * 2005-11-11 2007-05-31 Sony Corp 撮像再生装置
JP2009527135A (ja) 2006-01-05 2009-07-23 アイスポット、コーポレーション デジタル・ビデオを記憶、編集、および共有するシステムおよび方法
JP2007193888A (ja) 2006-01-19 2007-08-02 Sony Corp 記録装置および方法、プログラム、並びに符号化装置および方法
CN101491097B (zh) * 2006-07-13 2011-12-14 高通股份有限公司 使用经循环对准的片段的具有细粒度可缩放性的视频编码
CA2657267C (en) * 2006-07-13 2013-07-16 Qualcomm Incorporated Video coding with fine granularity scalability using cycle-aligned fragments
JP4921076B2 (ja) * 2006-08-28 2012-04-18 キヤノン株式会社 撮像装置及びその制御方法
JP2008078969A (ja) * 2006-09-21 2008-04-03 Victor Co Of Japan Ltd 動画像符号化記録装置
JP2008109590A (ja) * 2006-10-27 2008-05-08 Olympus Corp 撮像システム及び撮像機器の認証方法
JP2008118271A (ja) 2006-11-01 2008-05-22 Fujinon Corp 撮像装置の遠隔制御システム
US8116537B2 (en) 2007-04-04 2012-02-14 Sony Corporation Image recording device, player device, imaging device, player system, method of recording image, and computer program
US10454995B2 (en) * 2007-06-11 2019-10-22 Crackle, Inc. System and method for obtaining and sharing content associated with geographic information
JP4786602B2 (ja) * 2007-06-26 2011-10-05 株式会社東芝 情報処理装置およびプログラム
JP2009021775A (ja) 2007-07-11 2009-01-29 Panasonic Corp 符号化装置及び符号化方法
JP2009048469A (ja) * 2007-08-21 2009-03-05 Fujitsu Ltd 情報処理装置及び情報処理方法
JP4922138B2 (ja) 2007-11-20 2012-04-25 株式会社東芝 動画像符号化装置及び動画像符号化方法
US20090238479A1 (en) * 2008-03-20 2009-09-24 Pawan Jaggi Flexible frame based energy efficient multimedia processor architecture and method
US9967590B2 (en) 2008-04-10 2018-05-08 Qualcomm Incorporated Rate-distortion defined interpolation for video coding based on fixed filter or adaptive filter
US20090320082A1 (en) 2008-06-19 2009-12-24 Iwatchnow Inc. Method of delivering content data
US20100275122A1 (en) * 2009-04-27 2010-10-28 Microsoft Corporation Click-through controller for mobile interaction
US8737825B2 (en) 2009-09-10 2014-05-27 Apple Inc. Video format for digital video recorder
US8554061B2 (en) 2009-09-10 2013-10-08 Apple Inc. Video format for digital video recorder

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7110025B1 (en) 1997-05-28 2006-09-19 Eastman Kodak Company Digital camera for capturing a sequence of full and reduced resolution digital images and storing motion and still digital image data
US6078617A (en) 1997-06-06 2000-06-20 Fujitsu Limited Apparatus and method for coding and decoding video images
US20050105624A1 (en) 2003-09-19 2005-05-19 Goro Kato Image processing apparatus and method, program, and recording medium

Also Published As

Publication number Publication date
JP2013504936A (ja) 2013-02-07
JP5883474B2 (ja) 2016-03-15
US20110058792A1 (en) 2011-03-10
JP2014220818A (ja) 2014-11-20
WO2011031902A1 (en) 2011-03-17
BR112012005549A2 (pt) 2017-06-20
JP6280144B2 (ja) 2018-02-14
CN104952470A (zh) 2015-09-30
JP5555775B2 (ja) 2014-07-23
BR112012005549B1 (pt) 2021-08-17
CN102484712A (zh) 2012-05-30
WO2011031902A4 (en) 2011-05-19
JP2016129361A (ja) 2016-07-14
EP2476256A1 (en) 2012-07-18
EP2733703A1 (en) 2014-05-21
US8737825B2 (en) 2014-05-27
CN104952470B (zh) 2018-02-23
EP2476256B1 (en) 2014-08-06
EP2733703B1 (en) 2017-10-25
CN102484712B (zh) 2015-05-13
US9215402B2 (en) 2015-12-15
US20140301720A1 (en) 2014-10-09
AU2010292204A1 (en) 2012-05-03
HK1169532A1 (en) 2013-01-25
KR20120056867A (ko) 2012-06-04
AU2010292204B2 (en) 2014-09-18

Similar Documents

Publication Publication Date Title
KR101361237B1 (ko) 디지털 비디오 레코더의 비디오 형식
JP6780761B2 (ja) 画像符号化装置および方法
US8731374B2 (en) Video format for digital video recorder
KR100440953B1 (ko) 영상 압축 비트 스트림의 트랜스코딩 방법
JP4947389B2 (ja) 画像信号復号装置、画像信号復号方法、および画像信号符号化方法
WO2009073075A1 (en) Extension of the avc standard to encode high resolution digital still pictures in series with video
TW201412130A (zh) 編碼器及編碼方法
US20070258009A1 (en) Image Processing Device, Image Processing Method, and Image Processing Program
KR102513756B1 (ko) 이미지 인코딩 방법, 디코딩 방법, 인코더, 디코더 및 저장매체
JP2007306370A (ja) 画像符号化記録装置
AU2014277749B2 (en) Video editing and reformatting for digital video recorder
KR20230023708A (ko) 영상/비디오 코딩 시스템에서 상위 레벨 신택스를 처리하는 방법 및 장치
KR20220165256A (ko) 영상 디코딩 방법 및 그 장치
JP2009164937A (ja) 動画像の多重化方法とファイル読み込み方法及び装置,並びにそのプログラムとコンピュータ読み取り可能な記録媒体
WO2023127940A1 (ja) 画像処理装置および画像処理方法
JP6690536B2 (ja) 画像処理装置、画像処理方法、およびプログラム
JP2009272929A (ja) 映像符号化装置および映像符号化方法
JP5247210B2 (ja) 動画像符号化装置及び動画像符号化方法
JP2007158807A (ja) 記録再生装置および記録再生方法、記録装置および記録方法、再生装置および再生方法、並びにプログラム
JP2018113525A (ja) 動画像符号化装置及び動画像符号化方法

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180103

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190116

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20200115

Year of fee payment: 7