CN114125258A - 视频处理方法及电子设备 - Google Patents

视频处理方法及电子设备 Download PDF

Info

Publication number
CN114125258A
CN114125258A CN202010883703.9A CN202010883703A CN114125258A CN 114125258 A CN114125258 A CN 114125258A CN 202010883703 A CN202010883703 A CN 202010883703A CN 114125258 A CN114125258 A CN 114125258A
Authority
CN
China
Prior art keywords
audio
image
time stamp
time delay
delay
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN202010883703.9A
Other languages
English (en)
Other versions
CN114125258B (zh
Inventor
蔡学江
余艳辉
程丽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202010883703.9A priority Critical patent/CN114125258B/zh
Priority to CN202310404489.8A priority patent/CN116437197A/zh
Priority to PCT/CN2021/113153 priority patent/WO2022042387A1/zh
Priority to EP21860225.8A priority patent/EP4195653A4/en
Publication of CN114125258A publication Critical patent/CN114125258A/zh
Priority to US18/173,904 priority patent/US12106780B2/en
Application granted granted Critical
Publication of CN114125258B publication Critical patent/CN114125258B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/34Indicating arrangements 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/4223Cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/42203Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS] sound input device, e.g. microphone
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4305Synchronising client clock from received content stream, e.g. locking decoder clock with encoder clock, extraction of the PCR packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • H04N21/43072Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of multiple content streams on the same device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/439Processing of audio elementary streams
    • H04N21/4394Processing of audio elementary streams involving operations for analysing the audio stream, e.g. detecting features or characteristics in audio streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/85406Content authoring involving a specific file format, e.g. MP4 format
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/62Control of parameters via user interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/63Control of cameras or camera modules by using electronic viewfinders
    • H04N23/631Graphical user interfaces [GUI] specially adapted for controlling image capture or setting capture parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/63Control of cameras or camera modules by using electronic viewfinders
    • H04N23/631Graphical user interfaces [GUI] specially adapted for controlling image capture or setting capture parameters
    • H04N23/632Graphical user interfaces [GUI] specially adapted for controlling image capture or setting capture parameters for displaying or modifying preview images prior to image capturing, e.g. variety of image resolutions or capturing parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/667Camera operation mode switching, e.g. between still and video, sport and normal or high- and low-resolution modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/67Focus control based on electronic image sensor signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/69Control of means for changing angle of the field of view, e.g. optical zoom objectives or electronic zooming

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Studio Devices (AREA)

Abstract

本申请提出一种视频处理方法及电子设备。在变焦拍摄场景下,声音从声源处传输至电子设备导致的声音传播时延,以及电子设备的算法处理时延,将影响音频对应的音频时间戳的准确性,造成音频与图像不同步,本申请通过基于第一音频对应的第一时延,对第一音频的第一音频时间戳进行修正,以修正第一音频时间戳、第一音频以及第一图像之间的对应关系,使得保存的第一图像与第一音频的对应关系,与第一图像对应的画面和第一音频对应的声音的对应关系是一致的,从而实现音频与图像同步。

Description

视频处理方法及电子设备
技术领域
本申请实施例涉及视频处理领域,尤其涉及一种视频处理方法及电子设备。
背景技术
随着手机的拍摄技术提升,在录像过程中,手机的摄像头的光学变焦能力可以做到十倍甚至更高。同时,手机麦克风的处理能力也同步提高,即,手机麦克风可采集到变焦范围内的声音,以实现定向拾音。
但是,在变焦拍摄的场景下,尤其是被拍摄物体距离手机较远的情况下,由于声音传播的延时,将会导致音画不同步的现象发生,并且变焦倍数越大,则音画不同步的问题越严重。
发明内容
为了解决上述技术问题,本申请提供一种视频处理方法及电子设备。在该方法中,在视频录制的过程中,电子设备能够基于音频对应的时延,对音频时间戳进行修正,从而实现音频与视频画面的同步,提升了用户体验。
第一方面,提供一种视频处理方法。该视频处理方法包括:检测到用户的第一指令。响应于第一指令,显示拍摄界面。获取第一变焦倍数,并获取第一变焦倍数对应的第一视频,其中,第一视频包括第一音频和第一图像,并且,第一音频和第一图像对应,第一图像包括被拍摄物体,第一音频根据声源发出的声音生成,声源为被拍摄物体,或者,声源与被拍摄物体的距离在设定的范围内。获取第一音频对应的第一时延,第一时延包括第一声音传播时延,或者,第一时延包括第一声音传播时延和设定的算法处理时延,第一声音传播时延为声源发出的声音从声源传输至电子设备导致的时延。基于第一时延,确定第一音频的第一音频时间戳。在拍摄界面,显示第一图像,并且,保存第一图像,以及第一音频和第一音频时间戳的对应关系。
可以理解,上述执行主体电子设备也可以替换成至少一个软件模块,或者至少一个软件模块和至少一个硬件模块,例如图1A和图2中的模块。
示例性的,电子设备可在读取周期的每个周期触发时刻,读取采集点已采集的音频,所述采集点可以集成在电子设备芯片上,也可以在芯片外,采集点可以为麦克风。相应的,电子设备获取第一变焦倍数对应的第一视频,具体为电子设备在第一读取周期,读取麦克风采集的音频。
示例性的,所述第一音频和第一图像对应是指所述第一音频对应的声音,和所述第一图像对应的画面,在拍摄的场景下是同步发生的,例如图7c所示的图像帧和音频帧的对应关系。
示例性的,第一图像中包括的被拍摄物体为运动或静止的人或物体。
示例性的,在被拍摄物体与声源为不同的物体的场景下,例如图7a所示的场景,被拍摄物体与声源之间的距离在设定的范围内。示例性的,设定的范围可以为1米,即,声源可在以拍摄物体为圆心,半径为1米的圆内的任意位置。
示例性的,第一时延中是否包括设定的算法处理时延,取决于第一变焦倍数的大小,若第一变焦倍数大于设定的变焦倍数,例如2倍,则第一时延包括第一声音传播时延和算法处理时延,若第一变焦倍数小于或等于设定的变焦倍数,则第一时延包括第一声音传播时延。由于声源发出的声音从所述声源传输至电子设备需要一定的时间,导致声源发出声音到该声音被采集时有一个时差,从而导致了第一声音传播时延,计算第一声音传播时延时,可以使用声源到采集点或采集设备的距离,除以声音的传播速度。其中,声源到采集点或采集设备的距离可以通过传感器测距的方式获取,由于声源距离被拍摄物体的距离较近,也可以近似的采用被拍摄物体到采集点或采集设备的距离。
示例性的,电子设备保存第一音频和第一音频时间戳的对应关系的方式可以为,将第一音频和第一音频时间戳对应写入视频文件,视频文件可以为MP4文件。
这样,电子设备可基于获取到的时延,确定与音频对应的音频时间戳,以实现对音频时间戳的修正,从而在声源发出的声音从所述声源传输至电子设备所需时间,导致电子设备获取到的音频与其对应的声音实际发生的时间存在声音传播时延,以及在对音频时间戳进行处理时,导致的算法处理时延的情况下,能够有效地抵消声音传播时延和算法处理时延对音频时间戳的影响,进而减小音频对应的音频时间戳与该音频对应的声音从声源实际发出的时间(指与视频录制起始时刻的相对时间)之间的误差,使得保存的第一图像与第一音频的对应关系,与第一图像对应的画面和第一音频对应的声音之间的对应关系是一致的,从而实现音频与图像同步。
根据第一方面,保存第一图像,以及第一音频和第一音频时间戳的对应关系之后,方法还包括:根据第一音频时间戳,将第一音频和第一图像同步播放。
示例性的,在视频录制过程中,电子设备还会获取与第一图像对应的第一图像时间戳,电子设备在播放第一视频的过程中,可将第一图像时间戳与第一音频时间戳对齐,并播放第一图像时间戳对应的第一图像以及第一音频时间戳对应的音频。
示例性的,播放所述第一视频的时刻可以是视频录制完成后的任一时刻。例如,视频录制完成后,电子设备检测到用户的播放指令,播放第一视频,或者,电子设备检测到用户的停止录制指令,停止视频录制,并播放第一视频。需要说明的是,播放第一视频的电子设备还可以是另一电子设备。
这样,基于时延修正后的每个音频对应的音频时间戳,均与该音频对应的声音的实际发生时间,或者说,与该音频对应的图像发生的时间是一致的,因此,在播放第一视频的过程中,第一音频和第一图像是同步播放的,即实现音频与图像(即视频画面)同步。
根据第一方面,或者以上第一方面的任意一种实现方式,获取第一音频对应的第一时延,包括:根据所述第一变焦倍数,以及变焦倍数与成像距离的对应关系,获取所述第一变焦倍数对应的第一成像距离。基于下述公式,计算第一声音传播时延:
Figure BDA0002651805940000031
其中,d1为第一成像距离,c为声音在拍摄的介质中的传播速度。
基于第一音频对应的时延,确定第一音频的第一音频时间戳,包括:基于下述公式,计算第一音频时间戳:
第一音频时间戳=N1*l-latency1
其中,latency1为第一时延,l为读取周期的周期时长,读取周期为从视频录制开始周期性地读取采集点已采集的音频的周期,N1为第一音频对应的读取周期,N1为大于或等于1的整数。
示例性的,电子设备设定有一个或多个变焦倍数,及各变焦倍数对应的成像距离,电子设备可通过将第一变焦倍数与设定的一个或多个变焦倍数进行匹配,以获取对应的第一成像距离。
示例性的,第一成像距离可能大于声源与电子设备之间的实际距离,也可能小于该实际距离,还可能等于该实际距离。
示例性的,电子设备周期性地从采集点读取音频,以获取时长等于读取周期的一个或多个音频,其中,第一音频属于所述一个或多个音频。示例性的,视频录制起始时刻可以记为读取周期n,则后续的每个读取周期表示为N+n。
示例性的,c可以为声音在空气中的传播速度。示例性的,若在水下拍摄,则c为声音在水中的传播速度。
这样,电子设备可基于变焦倍数对应的成像距离,获取到与变焦倍数对应的时延,并可基于获取到的时延,对该变焦倍数下获取到的音频对应的音频时间戳进行修正,以实现音频与图像同步。
根据第一方面,或者以上第一方面的任意一种实现方式,保存第一图像,以及第一音频和第一音频时间戳的对应关系之后,方法还包括:检测到用户的第二指令。根据第二指令,获取第二变焦倍数,并获取第二变焦倍数对应的第二视频,其中,第二视频包括第二音频和第二图像;第二图像包括另一被拍摄物体,第二音频根据另一声源发出的声音生成,另一声源为另一被拍摄物体,或者,另一声源与另一被拍摄物体的距离在设定的范围内,第二变焦倍数与第一变焦倍数不同。获取第二音频对应的第二时延,第二时延包括第二声音传播时延,或者,第二时延包括第二声音传播时延和算法处理时延,其中,第二声音传播时延为另一声源发出的声音从另一声源传输至电子设备导致的时延。基于第二时延,确定第二音频的第二音频时间戳。
示例性的,在视频录制的过程中,电子设备可基于用户的指令,调节变焦倍数。示例性的,调节后的变焦倍数(即第二变焦倍数)可以大于或小于前一时刻的变焦倍数,例如第一变焦倍数。电子设备可基于第二变焦倍数,获取第二视频。
示例性的,另一被拍摄物体可以与第一方面所述的拍摄物体是同一个物体,也可以是不同的物体。另一声源可以与第一方面所述的声源是同一声源,也可以是不同的声源。
示例性的,由于变焦倍数的变化,使得对应的时延变化,因此,电子设备获取到的第二图像和第二音频可能不是对应的,即,第二音频对应的声音与第二图像对应的画面不是同步发生的。
这样,电子设备可基于不同的变焦倍数下获取的音频对应的时延,对该变焦倍数下获取到的音频对应的音频时间戳进行修正,以实现视频录制过程中保存的每个音频与对应的图像均对应。
根据第一方面,或者以上第一方面的任意一种实现方式,获取第二音频对应的第二时延,包括:根据第二变焦倍数,以及变焦倍数与成像距离的对应关系,获取第二变焦倍数对应的第二成像距离。基于下述公式,计算第二声音传播时延:
Figure BDA0002651805940000041
其中,d2为第二成像距离。
这样,电子设备可基于不同的变焦倍数对应的成像距离,获取到不同变焦倍数下获取到的音频对应的时延。
根据第一方面,或者以上第一方面的任意一种实现方式,基于第二时延,确定第二音频的第二音频时间戳,包括:基于下述公式,计算第二音频时间戳:
第二音频时间戳=N2*l-latency2
其中,latency2为第二时延,N2为第二音频对应的读取周期,N2与N1为相邻周期,且N2大于N1。
示例性的,N2与N1为相邻周期,且N2大于N1,即为第一音频对应的读取周期为与第二音频对应的读取周期相邻的前一周期。
这样,电子设备可基于不同的变焦倍数对应的成像距离,获取到不同变焦倍数下获取到的音频对应的时延,从而基于音频对应的时延,对音频对应的音频时间戳进行修正,以实现音频与图像同步。
根据第一方面,或者以上第一方面的任意一种实现方式,确定第二音频的第二音频时间戳之后,包括:基于下述公式,获取第二音频时间戳与第一音频时间戳之间的差值:
差值=第二音频时间戳-第一音频时间戳
若差值大于0且小于2l,在拍摄界面,显示第二图像,并且,保存第二图像,以及第二音频和第二音频时间戳的对应关系。
示例性的,2l可以表示2倍的读取周期时长,也可以表示2倍的音频帧长,其中,音频帧长等于读取周期时长。
这样,电子设备可基于两个相邻音频时间戳之间的差值,确定获取到的音频时间戳(即当前读取周期获取到的音频对应的音频时间戳)是否出现音频时间戳抖动的问题,若两个相邻音频时间戳之间的差值大于0且小于2l,则确定未出现音频时间戳抖动的问题,并将获取到的音频与音频时间戳对应保存。
根据第一方面,或者以上第一方面的任意一种实现方式,若差值小于0,在拍摄界面,显示第二图像,并且,保存第二图像,以及,丢弃第二音频和第二音频时间戳。
示例性的,丢弃第二异频和第二音频时间戳后,第二视频中的第二图像将与下一个读取周期获取到的音频(例如第三音频)对应,即,在视频播放过程中,第二图像与第三音频同步播放。
这样,在变焦倍数增大,导致音频时间戳抖动的问题时,电子设备可通过丢弃第二音频和第二音频时间戳的方式,解决音频时间戳抖动的问题。
根据第一方面,或者以上第一方面的任意一种实现方式,保存第二图像,以及,丢弃第二音频和第二音频时间戳之后,还包括:根据第三音频时间戳,将第三音频和第二图像同步播放;其中,第三音频时间戳与第三音频对应,第三音频为在第二音频对应的读取周期的下一个读取周期获取到的。
示例性的,电子设备可播放保存的视频,即基于各图像对应的图像时间戳显示对应的图像,以及,基于各音频对应的音频时间戳播放对应的音频。
示例性的,在丢弃第二音频与第二时间戳后,保存的第二图像将与第三音频对应,也就是说,将原第二图像与第二音频的对应关系,更新为第二图像与第三音频的对应关系,也就是说,第二图像对应的画面与第三音频对应的声音是同步发生的。
这样,通过丢弃发生抖动的音频时间戳及对应的音频的方式,抑制由于变焦倍数变小,导致的音频时间戳抖动的问题,以实现在播放过程中的音频与图像同步。
根据第一方面,或者以上第一方面的任意一种实现方式,若差值大于或等于2l,显示第二图像,并且,保存第二图像,第二音频和第二音频时间戳的对应关系,以及插入音频和插入音频时间戳的对应关系,其中,插入音频为基于第二音频所得。插入音频时间戳为基于下述公式所得:
Figure BDA0002651805940000051
或者,
Figure BDA0002651805940000052
其中,p为算法处理时延。
示例性的,插入音频帧可以是将第二音频进行淡入淡出处理后得到的。
这样,在变焦倍数减小,导致音频时间戳抖动的问题时,电子设备可通过插入插入音频和并且在第一音频时间戳与第二音频时间戳之间插入插入音频时间戳的方式,解决音频时间戳抖动的问题。
根据第一方面,或者以上第一方面的任意一种实现方式,保存第二图像,第二音频和第二音频时间戳的对应关系,以及插入音频和插入音频时间戳的对应关系之后,还包括:根据插入音频时间戳,将插入音频和第二图像同步播放。
示例性的,在插入插入音频后,保存的第二图像与插入音频对应。示例性的,第二音频可以与第三图像对应,也就是说,第二音频对应的声音与第三图像对应的画面是同步发生的。
这样,通过插入插入音频和并且在第一音频时间戳与第二音频时间戳之间插入插入音频时间戳的方式,抑制由于变焦倍数增大,导致的音频时间戳抖动的问题,以实现在播放过程中的音频与图像同步。
根据第一方面,或者以上第一方面的任意一种实现方式,基于第二时延,确定所述第二音频的第二音频时间戳,包括:
若第二声音传播时延小于第一声音传播时延,基于下述公式,获取第一时延差值:
第一时延差值=第一声音传播时延-第二声音传播时延
其中,第一音频的读取周期为所述第二音频的读取周期相邻的前一周期。
若第二声音传播时延大于第一声音传播时延,基于下述公式,获取第二时延差值:
第二时延差值=第二声音传播时延-第一声音传播时延
若第一时延差值大于0且小于l,或者,第二时延差值大于0且小于l,基于下述公式,计算第二音频时间戳:
第二音频时间戳=N2*l-latency2
其中,latency2为第二时延,N2为第二音频对应的读取周期,N2与N1为相邻周期,且N2大于N1。
在拍摄界面,显示第二图像,并且,保存第二图像,第二音频和第二音频时间戳的对应关系。
根据第一方面,或者以上第一方面的任意一种实现方式,若第一时延差值大于或等于l,在拍摄界面,显示第二图像,并且,保存第二图像,以及,丢弃第二音频。
根据第一方面,或者以上第一方面的任意一种实现方式,保存第二图像,以及,丢弃第二音频之后,还包括:根据第三音频时间戳,将第三音频和第二图像同步播放;其中,第三音频时间戳与第三音频对应,第三音频为在第二音频对应的读取周期的下一个读取周期获取到的。
根据第一方面,或者以上第一方面的任意一种实现方式,若第二时延差值大于或等于l,显示第二图像,并且,保存第二图像,第二音频和第二音频时间戳的对应关系,以及插入音频和插入音频时间戳的对应关系,其中,插入音频为基于第二音频所得。
基于下述公式,计算第二音频时间戳:
第二音频时间戳=N2*l-latency2
其中,latency2为第二时延,N2为第二音频对应的读取周期,N2与N1为相邻周期,且N2大于N1。
基于下述公式,获取插入音频时间戳:
Figure BDA0002651805940000071
或者,
Figure BDA0002651805940000072
其中,p为算法处理时延。
根据第一方面,或者以上第一方面的任意一种实现方式,保存第二图像,第二音频和第二音频时间戳的对应关系,以及插入音频和插入音频时间戳的对应关系之后,还包括:根据插入音频时间戳,将插入音频和第二图像同步播放。
根据第一方面,或者以上第一方面的任意一种实现方式,获取第一音频对应的第一时延,包括:当第一变焦倍数大于设定的变焦倍数,获取第一音频对应的第一时延。
示例性的,电子设备可在视频录制过程中,检测获取到的变焦倍数是否大于设定的变焦倍数,并在变焦倍数大于设定的变焦倍数后,获取第一音频对应的第一时延,示例性的,设定的变焦倍数可以为2倍,或2.5倍等。也就是说,在变焦倍数小于设定的变焦倍数的场景下,不触发本申请中所述的基于时延,确定音频时间戳的方案。这样,可有效降低设备处理压力,以节约系统资源。
根据第一方面,或者以上第一方面的任意一种实现方式,获取所述第一变焦倍数,包括:读取已存储的前一次视频录制结束前,最后一次获取到的变焦倍数;或者,检测到用户的变焦指令,响应于所述变焦指令,获取所述第一变焦倍数;或者,检测到用户的模式设置指令,响应于所述模式设置指令,确定第一变焦模式,并根据变焦模式与变焦倍数的对应关系,获取所述第一变焦模式对应的所述第一变焦倍数。
示例性的,第一变焦倍数可以是用户在拍摄界面显示预览图像的过程中设置的。示例性的,第一变焦倍数也可以是用户在视频录制过程中的任一时刻,在电子设备的拍摄界面中的变焦倍数调节选项中设置的。示例性的,第一变焦倍数还可以是上一次视频录制过程中最后一次获取到的变焦倍数,并在本次视频录制过程中,沿用该变焦倍数,也就是说,在视频录制的起始时刻,电子设备即可获取到第一变焦倍数。示例性的,第一变焦倍数还可以是用户在预览图像或者视频录制过程中,设置的大焦距模式,例如,远景拍摄模式,该模式对应的变焦倍数为5倍。
需要说明的是,在显示预览图像以及在拍摄见面显示图像的过程中,电子设备可以仅采集并显示图像,而不采集音频。
这样,电子设备可在视频录制过程中,基于接收到的用户指令,开始获取变焦倍数,即,触发本申请实施例中的视频处理方法。
根据第一方面,或者以上第一方面的任意一种实现方式,算法处理时延为设定的固定时延。
这样,电子设备可在对音频时间戳进行修正时,基于已配置在电子设备(例如电子设备的内存)中的算法处理时延,获取音频对应的时延。
第二方面,本申请实施例提供一种电子设备。该电子设备包括:一个或多个处理器;存储器;以及一个或多个计算机程序,其中一个或多个计算机程序存储在存储器上,当计算机程序被一个或多个处理器执行时,使得电子设备执行以下步骤:检测到用户的第一指令;响应于第一指令,显示拍摄界面;获取第一变焦倍数,并获取第一变焦倍数对应的第一视频,其中,第一视频包括第一音频和第一图像;第一音频和第一图像对应,第一图像包括被拍摄物体,第一音频根据声源发出的声音生成,声源为被拍摄物体,或者,声源与被拍摄物体的距离在设定的范围内;获取第一音频对应的第一时延,第一时延包括第一声音传播时延,或者,第一时延包括第一声音传播时延和设定的算法处理时延,第一声音传播时延为声源发出的声音从声源传输至电子设备导致的时延;基于第一时延,确定第一音频的第一音频时间戳;在拍摄界面,显示第一图像,并且,保存第一图像,以及第一音频和第一音频时间戳的对应关系。
根据第二方面,当计算机程序被一个或多个处理器执行时,使得电子设备执行以下步骤:根据第一音频时间戳,将第一音频和第一图像同步播放。
根据第二方面,或者以上第二方面的任意一种实现方式,当计算机程序被一个或多个处理器执行时,使得电子设备执行以下步骤:根据第一变焦倍数,以及变焦倍数与成像距离的对应关系,获取第一变焦倍数对应的第一成像距离;基于下述公式,计算第一声音传播时延:
Figure BDA0002651805940000081
其中,d1为第一成像距离,c为声音在拍摄的介质中的传播速度;
电子设备还执行以下步骤:基于下述公式,计算第一音频时间戳:
第一音频时间戳=N1*l-latency1
其中,latency1为第一时延,l为读取周期的周期时长,读取周期为从视频录制起始时刻周期性地读取采集点已采集的音频的周期,N1为第一音频对应的读取周期,N1为大于或等于1的整数。
根据第二方面,或者以上第二方面的任意一种实现方式,当计算机程序被一个或多个处理器执行时,使得电子设备执行以下步骤:检测到用户的第二指令;根据第二指令,获取第二变焦倍数,并获取第二变焦倍数对应的第二视频,其中,第二视频包括第二音频和第二图像;第二图像包括另一被拍摄物体,第二音频根据另一声源发出的声音生成,另一声源为另一被拍摄物体,或者,另一声源与另一被拍摄物体的距离在设定的范围内;第二变焦倍数与第一变焦倍数不同;获取第二音频对应的第二时延,第二时延包括第二声音传播时延,或者,第二时延包括第二声音传播时延和算法处理时延,其中,第二声音传播时延为另一声源发出的声音从另一声源传输至电子设备导致的时延;基于第二时延,确定第二音频的第二音频时间戳。
根据第二方面,或者以上第二方面的任意一种实现方式,当计算机程序被一个或多个处理器执行时,使得电子设备执行以下步骤:根据第二变焦倍数,以及变焦倍数与成像距离的对应关系,获取第二变焦倍数对应的第二成像距离;
基于下述公式,计算第二声音传播时延:
Figure BDA0002651805940000091
其中,d2为第二成像距离。
根据第二方面,或者以上第二方面的任意一种实现方式,当计算机程序被一个或多个处理器执行时,使得电子设备执行以下步骤:基于下述公式,计算第二音频时间戳:
第二音频时间戳=N2*l-latency2
其中,latency2为第二时延,N2为第二音频对应的读取周期,N2与N1为相邻周期,且N2大于N1。
根据第二方面,或者以上第二方面的任意一种实现方式,当计算机程序被一个或多个处理器执行时,使得电子设备执行以下步骤:基于下述公式,获取第二音频时间戳与第一音频时间戳之间的差值:
差值=第二音频时间戳-第一音频时间戳
若差值大于0且小于2l,在拍摄界面,显示第二图像,并且,保存第二图像,以及第二音频和第二音频时间戳的对应关系。
根据第二方面,或者以上第二方面的任意一种实现方式,当计算机程序被一个或多个处理器执行时,使得电子设备执行以下步骤:若差值小于0,在拍摄界面,显示第二图像,并且,保存第二图像,以及,丢弃第二音频和第二音频时间戳。
根据第二方面,或者以上第二方面的任意一种实现方式,当计算机程序被一个或多个处理器执行时,使得电子设备执行以下步骤:根据第三音频时间戳,将第三音频和第二图像同步播放;其中,第三音频时间戳与第三音频对应,第三音频为在第二音频对应的读取周期的下一个读取周期获取到的。
根据第二方面,或者以上第二方面的任意一种实现方式,当计算机程序被一个或多个处理器执行时,使得电子设备执行以下步骤:若差值大于或等于2l,显示第二图像,并且,保存第二图像,第二音频和第二音频时间戳的对应关系,以及插入音频和插入音频时间戳的对应关系;其中,插入音频为基于第二音频所得;
插入音频时间戳为基于下述公式所得:
Figure BDA0002651805940000101
或者,
Figure BDA0002651805940000102
其中,p为算法处理时延。
根据第二方面,或者以上第二方面的任意一种实现方式,当计算机程序被一个或多个处理器执行时,使得电子设备执行以下步骤:根据插入音频时间戳,将插入音频和第二图像同步播放。
根据第二方面,或者以上第二方面的任意一种实现方式,当计算机程序被一个或多个处理器执行时,使得电子设备执行以下步骤:若第二声音传播时延小于第一声音传播时延,基于下述公式,获取第一时延差值:
第一时延差值=第一声音传播时延-第二声音传播时延
其中,第一音频的读取周期为所述第二音频的读取周期相邻的前一周期。
若第二声音传播时延大于第一声音传播时延,基于下述公式,获取第二时延差值:
第二时延差值=第二声音传播时延-第一声音传播时延
若第一时延差值大于0且小于l,或者,第二时延差值大于0且小于l,基于下述公式,计算第二音频时间戳:
第二音频时间戳=N2*l-latency2
其中,latency2为第二时延,N2为第二音频对应的读取周期,N2与N1为相邻周期,且N2大于N1。
在拍摄界面,显示第二图像,并且,保存第二图像,第二音频和第二音频时间戳的对应关系。
根据第二方面,或者以上第二方面的任意一种实现方式,当计算机程序被一个或多个处理器执行时,使得电子设备执行以下步骤:若第一时延差值大于或等于l,在拍摄界面,显示第二图像,并且,保存第二图像,以及,丢弃第二音频。
根据第二方面,或者以上第二方面的任意一种实现方式,当计算机程序被一个或多个处理器执行时,使得电子设备执行以下步骤:根据第三音频时间戳,将第三音频和第二图像同步播放;其中,第三音频时间戳与第三音频对应,第三音频为在第二音频对应的读取周期的下一个读取周期获取到的。
根据第二方面,或者以上第二方面的任意一种实现方式,当计算机程序被一个或多个处理器执行时,使得电子设备执行以下步骤:若第二时延差值大于或等于l,显示第二图像,并且,保存第二图像,第二音频和第二音频时间戳的对应关系,以及插入音频和插入音频时间戳的对应关系,其中,插入音频为基于第二音频所得。
基于下述公式,计算第二音频时间戳:
第二音频时间戳=N2*l-latency2
其中,latency2为第二时延,N2为第二音频对应的读取周期,N2与N1为相邻周期,且N2大于N1。
基于下述公式,获取插入音频时间戳:
Figure BDA0002651805940000111
或者,
Figure BDA0002651805940000112
其中,p为算法处理时延。
根据第二方面,或者以上第二方面的任意一种实现方式,当计算机程序被一个或多个处理器执行时,使得电子设备执行以下步骤:根据插入音频时间戳,将插入音频和第二图像同步播放。
根据第二方面,或者以上第二方面的任意一种实现方式,当计算机程序被一个或多个处理器执行时,使得电子设备执行以下步骤:当第一变焦倍数大于设定的变焦倍数,获取第一音频对应的第一时延。
根据第二方面,或者以上第二方面的任意一种实现方式,当计算机程序被一个或多个处理器执行时,使得电子设备执行以下步骤:读取已存储的前一次视频录制结束前,最后一次获取到的变焦倍数;或者,检测到用户的变焦指令,响应于变焦指令,获取第一变焦倍数;或者,检测到用户的模式设置指令,响应于模式设置指令,确定第一变焦模式,并根据变焦模式与变焦倍数的对应关系,获取第一变焦模式对应的第一变焦倍数。
第二方面以及第二方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第二方面以及第二方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第三方面,提供一种计算机可读存储介质。该介质包括计算机程序,当计算机程序在电子设备上运行时,使得电子设备执行第一方面以及第一方面中任意一项的视频处理方法。
第三方面以及第三方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第三方面以及第三方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第四方面,提供一种芯片。该芯片包括至少一个处理电路和接口,处理电路可执行第一方面以及第一方面中任意一项的视频处理方法。
第四方面以及第四方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第四方面以及第四方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
附图说明
图1A为示例性示出的电子设备的结构示意图;
图1B为示例性示出的电子设备上的麦克风布局示意图;
图2为示例性示出的电子设备的软件结构框图;
图3为示例性示出的创建过程的流程示意图;
图4为示例性示出的录制过程的流程示意图;
图5为示例性示出的基于时间戳的音频与图像播放过程示意图;
图6为示例性示出的模块交互流程示意图;
图7a为示例性示出的应用场景示意图;
图7b为示例性示出的拍摄场景示意图;
图7c为示例性示出的图像与音频的对应关系的示意图之一;
图7d为示例性示出的图像与音频的对应关系的示意图之一;
图8为本申请实施例提供的视频处理方法的原理图示意图;
图9为本申请实施例提供的一种视频处理方法的流程示意图之一;
图10a为示例性示出的变焦倍数增大场景下的音频时间戳对比示意图之一;
图10b为示例性示出的变焦倍数增大场景下的音频时间戳对比示意图之一;
图11a为示例性示出的变焦倍数减小场景下的音频时间戳对比示意图之一;
图11b为示例性示出的变焦倍数减小场景下的音频时间戳对比示意图之一;
图12为本申请实施例提供的一种视频处理方法的流程示意图之一;
图13为本申请实施例提供的一种视频处理方法的流程示意图之一;
图14为本申请实施例提供的一种装置的结构示意图。
具体实施方式
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一目标对象和第二目标对象等是用于区别不同的目标对象,而不是用于描述目标对象的特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个处理单元是指两个或两个以上的处理单元;多个系统是指两个或两个以上的系统。
本申请实施例提供的视频处理方法,可以应用于电子设备,电子设备也可以称为终端、终端设备等。例如,该电子设备具体可以是手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)或专门的照相机(例如单反相机、卡片式相机)等,本申请实施例对电子设备的具体类型不作任何限制。
示例性的,图1A示出了电子设备100的一种结构示意图。电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
在本申请的实施例中,显示屏194可以显示摄像头的拍摄预览界面、录像预览界面和拍摄界面,还可以在视频回放时显示视频播放界面等。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将电信号传递给ISP处理,转化为肉眼可见的图像。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。其中,摄像头193可以位于电子设备的边缘区域,可以为屏下摄像头,也可以是可升降的摄像头。摄像头193可以包括后置摄像头,还可以包括前置摄像头。本申请实施例对摄像头193的具体位置和形态不予限定。
视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如电子设备100采集的图像,音频数据,电话本等)等。
在本申请的实施例中,处理器110通过运行存储在内部存储器121的指令,使得电子设备执行本申请中的视频处理方法,具体为根据时延的大小,调整音频的时间戳。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,多个麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频数据转换成模拟音频电信号输出,也用于将模拟音频电信号输入转换为数字音频数据。例如,音频模块170用于将麦克风170C输出的模拟音频电信号转换为数字音频数据。
其中,音频模块170还可以包括音频处理模块。音频处理模块用于,在录像模式下,对数字音频数据进行音频处理,从而生成音频。音频模块170还可以用于对音频数据进行编码和解码。
在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将模拟音频电信号转换为声音信号。电子设备100可以通过扬声器170A收听音乐,或收听免提通话。
受话器170B,也称“听筒”,用于将模拟音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为模拟音频电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。在本申请的实施例中,电子设备100可以包括至少三个麦克风170C,可以实现采集各个方向的声音信号,并将采集到的声音信号转换为模拟音频电信号的功能,还可以实现降噪,识别声音来源,或定向录音功能等。
示例性的,电子设备100上麦克风170C的布局可以如图1B所示,电子设备100可以包括底部设置的麦克风1,顶部设置的麦克风2,以及背面设置的麦克风3。麦克风1-3的组合可以采集电子设备100周围各个方向的声音信号。需要说明的是,电子设备100还可以包括更多数量的麦克风170C。例如,电子设备100可以包括底部设置的一个或多个麦克风和麦克风,顶部设置的一个或多个麦克风,背面设置的一个或多个麦克风,以及屏幕正面设置的一个或多个麦克风。这些麦克风可以采集电子设备100周围各个方向的声音信号。该屏幕为显示屏194或触摸屏。
需要说明的是,该麦克风170C可以是电子设备100的内置部件,也可以是电子设备100的外接配件。例如,电子设备100可以包括底部设置的麦克风1,顶部设置的麦克风2,以及外接配件。示例性的,该外接配件可以与电子设备100相连(有线连接或无线连接)的微型麦克风,或者具有麦克风的耳机(比如有线耳机或TWS耳机等)等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。
图2是本申请实施例的电子设备100的软件结构框图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,硬件抽象层(hardware abstraction layer,HAL)。应用程序层可以包括一系列应用程序包。
如图2所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架(Framework)层为应用程序层的应用程序提供应用编程接口(application programming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图2所示,应用程序框架层可以包括包括媒体服务(Media Server)、音频服务(Audio Server)、摄像头服务(Camera Server)、系统服务(System Server)等。
示例性的,Media Server用于对管理音频数据和图像数据,例如控制音频数据和图像数据的数据流向以及将音频流和图像流写入MP4文件等处理。需要说明的是,在本申请实施例的描述中,音频数据和图像数据也可以分别称为音频流和图像流,或者,音频信息和图像信息,本申请不做限定。
Audio Server用于对音频流进行相应处理,例如,获取与音频流对应的音频时间戳等处理。
Camera Server用于对图像流进行相应处理,例如,获取与图像流对应的视频时间戳等处理。
Media Server、Audio Server以及Camera Server的具体功能将在下面的实施例中进行详细说明。
系统库与运行时层包括系统库和安卓运行时(Android Runtime)。系统库可以包括多个功能模块。例如:浏览器内核,3D图形库(例如:OpenGL ES),字体库等。浏览器内核负责对网页语法的解释(如标准通用标记语言下的一个应用HTML、JavaScript)并渲染(显示)网页。3D图形库用于实现三维图形绘图,图像渲染,合成和图层处理等。字体库用于实现不同字体的输入。安卓运行时包括核心库和虚拟机。安卓运行时负责安卓系统的调度和管理。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
可以理解的是,图2示出的系统框架层、系统库与运行时层包含的部件,并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。
HAL层为位于操作系统内核与硬件电路之间的接口层。HAL层包括但不限于:音频硬件抽象层(Audio HAL)和摄像头硬件抽象层(Camera HAL)。其中,Audio HAL用于对音频流进行处理,例如,对音频流进行降噪、定向增强等处理,Camera HAL用于对图像流进行处理。
内核层是硬件和上述软件层之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。其中,该硬件可以包括摄像头、显示屏,麦克风,处理器,以及存储器等器件。
在本申请的实施例中,硬件中的显示屏可以显示录像时的拍摄预览界面、录像预览界面和拍摄界面。硬件中的摄像头可以用于采集图像。硬件中的麦克风可以用于采集声音信号,并生成模拟音频电信号。
基于图2所示的电子设备的软件结构图,下面结合图3和图4所示的模块交互示意图,对拍摄(或录制)过程中的具体流程,以及由于焦距变化,出现音画不同步问题的原因进行简单说明。
示例性的,电子设备的录制过程可分为两部分,第一部分为创建过程,即各模块创建对应的实例,也可以理解为准备过程,如图3所示,第二部分为录制过程,即,各实例对获取到的数据(音频或图像)进行处理的过程,如图4所示。其中,创建过程主要是各模块创建对应的实例。录制过程即为各实例对数据(包括音频流和图像流)的处理。
第一部分,创建过程
1、相机应用启动,并调用Media Server(媒体服务),以使Media Server创建对应实例。具体的,手机检测到用户打开相机(以下也可以称为相机应用)的操作后,启动相机应用,相机应用响应于用户指令,通过与Framework层的接口,在Framework层中创建MediaRecorder实例,以启动录制进程。Media Recorder实例指示Media Server创建对应实例。需要说明的是,本申请实施例中所述的“实例”也可以理解为运行在进程中的程序代码或进程代码,用于对接收到的数据(例如音频流或图像流)进行相应处理。需要说明的是,本申请实施例的描述中均是以相机应用为例进行说明,在其他实施例中,应用还可以是其它具有拍摄功能的应用,例如聊天应用中的相机功能等,本申请不做限定。
示例性的,Media Server响应于Media Recorder实例的指示,创建对应于音频和图像的实例。具体的,Media Server创建Stagefright Recorder(录制处理)实例。其中,Stagefright Recorder实例用于管理音频和图像数据的初始化以及数据流向。
Stagefright Recorder实例创建Camera Source(摄像头源)实例、Audio Record(音频录制)实例、Video Encoder(视频编码)实例、Audio Encoder(音频编码)实例、Mpeg4Writer(动态图象专家组写入)实例。本申请实施例中仅以创建MP4格式的文件为例进行说明,在其他实施例中,可以生成其它视频格式,并创建对应的实例。
2、Media Server指示Camera Server(摄像头服务)和Audio Server(音频服务)创建对应的实例。
示例性的,Camera Source实例指示Camera Server创建Camera实例,AudioRecord实例指示Audio Server创建Record Thread(录制进程)实例。相应的,CameraServer创建Camera实例,并且,Audio Server创建Record Thread实例。
3、Camera Server指示Carema Hal(摄像头硬件抽象层)创建对应实例,并且,Audio Server指示Audio Hal(音频硬件抽象层)创建对应实例。
示例性的,Camera实例指示Camera Hal创建Camera 3Device(相机设备,其中,数字3表示摄像头服务的版本号,可随版本更新)实例,以及,Record Thread实例指示AudioHal创建Input Stream(输入流)实例和录音定向增强算法实例,需要说明的是,录音定向增强算法实例可以仅在变焦拍摄场景下使能,具体实现过程中将在下文中详细说明。
4、Carema Hal调用摄像头驱动,Audio Hal调用麦克风驱动。示例性的,Camera3Device实例触发摄像头驱动启动,Input Stream实例触发麦克风驱动启动。
5、摄像头驱动调用摄像头采集图像流,麦克风驱动调用麦克风采集音频流。
第二部分,录制过程
1、摄像头将采集到的图像流输出至摄像头驱动,麦克风将拾取到的音频流输出至麦克风驱动。
2、摄像头驱动向Camera Hal输出图像流和对应的系统时间,以及,麦克风驱动将音频流输出至Audio Hal。示例性的,Camera 3Device实例获取摄像头输入的图像流和对应的系统时间,并且,录音定向增强算法实例获取麦克风驱动输入的音频流,并将获取到的音频流输出至Input Stream实例。
示例性的,图像流中包括多个图像,系统时间即为摄像头采集每个图像对应的系统时间。示例性的,系统时间可以与现实时间(即物理世界时间)相一致。
3、Camera Hal将获取到的图像流和系统时间输出至Camera Server,并且,AudioHal将获取到的音频流输出至Audio Server。
示例性的,Camera实例获取Camera 3Device实例输入的图像流和系统时间,并且,Record Thread实例获取Input Stream实例输入的音频流。
4、Camera Server获取图像流中的各图像对应的时间戳(下文中均简称为视频时间戳),并将图像流中的各图像及各图像对应的视频时间戳输出至Media Server。并且,Audio Server获取每个音频流对应的时间戳(下文中均简称为音频时间戳),并将每个音频流和每个音频流对应的音频时间戳输出至Media Server。
示例性的,Camera Source实例获取Camera实例输入的图像流中的各图像及各图像对应的视频时间戳,并且,Audio Record实例获取Record Thread实例输入的音频流和每个音频流对应的音频时间戳。
需要说明的是,视频时间戳与音频时间戳为根据录制的起始时间计算出的相对时间,其中,录制的起始时间即为0ms。也就是说,视频时间戳可以理解为是根据录像起始时间与每个图像对应的系统时间转换成的相对时间,音频时间戳类似,例如,假设音频时间戳为60ms,则表示该音频时间戳对应的音频流的采集时刻与录像起始时刻(即0ms)相距60ms。下文中不再重复说明,音频时间戳的获取方式将在下文中详细说明。
5、Media Server基于获取到的多个图像和每个图像对应的视频时间戳,以及多个音频流和每个音频流对应的音频时间戳,生成MP4文件。
示例性的,Camera Source实例将获取到的多个图像和每个图像对应的视频时间戳输出至Vidio Encoder实例,并且,Audio Record实例将获取到的多个音频流和每个音频流对应的音频时间戳输出至Audio Encoder实例。
Vidio Encoder实例对多个图像进行编码,生成对应的图像帧,每个图像帧对应一个视频时间戳(即上文所述的图像对应的视频时间戳),并且Vidio Encoder实例将多个图像帧和每个图像帧对应的视频时间戳输出至Mpeg4 Writer实例。以及,Audio Encoder实例对多个音频流进行编码,生成对应的音频帧,每个音频帧对应音频时间戳(即上文所述的音频流对应的音频时间戳),Audio Encoder实例将多个音频帧和每个音频帧对应的音频时间戳输出至Mpeg4 Writer实例。
示例性的,Mpeg4 Writer实例基于获取到的多个图像和每个图像对应的视频时间戳,以及多个音频流和每个音频流对应的音频时间戳,生成MP4文件。其中,MP4文件中包括图像数据(即多个图像帧)和音频数据(即多个音频帧)。当MP4文件在任一平台或播放器播放时,播放器会按照MPEG4标准,对图像帧和音频帧分别进行解码,以获取图像帧对应的原始图像以及音频帧对应的原始音频。播放器可基于图像帧对应的视频时间戳以及音频帧对应的音频时间戳,将解码得到的图像与音频进行对齐,使得图像与音频同步播放。
下面对视频时间戳和音频时间戳进行简单介绍:
如上文所述,MP4文件中包括图像数据和音频数据,在播放时,图像数据和音频数据的解码是独立的,并且解码后也是独立播放的。
需要说明的是,视频画面(即图像)播放速度是由帧率(Frame rate)决定的,帧率是单位时间内的位图图像连续出现在显示器上的频率(速率),帧率也可以称为帧频率,并以赫兹(Hz)表示。音频播放速度是由音频采样率决定的,音频采样率是指录音设备在一秒钟内对声音信号的采样次数。
在本申请中,均以每一个音频帧的播放时长(duration)为20ms,每一个图像帧的播放时长为17ms为例进行说明,需要说明的是,在其他实施例中,音频帧的播放时长可以为23.22ms,图像帧的播放时长可以为33ms等,本申请不做限定。
在理想情况下,音频与视频画面完全同步(简称音频与图像同步),但是,由于解码等因素的影响,音频与图像可能会出现不同步的情况,为实现音频与图像同步,已有技术中引入时间戳,以通过时间戳对音频和视频画面校准,以实现音频与图像的同步。
下面分别对视频时间戳的计算方式和音频时间戳的计算方式进行详细说明:
视频时间戳的计算方式为:以单一图像为粒度进行说明,具体的,Camera Server(具体为Camera实例)根据Camera Hal(具体为Camera3Device实例)输入的与图像对应的系统时间,并结合视频录制的起始时间,可计算出图像对应的视频时间戳,即系统时间与起始时间之间的相对时长,例如系统时间与起始时间之间的相对时长为17ms,则该图像对应的视频时间戳即为17ms。示例性的,Media Server(具体为Media Encoder实例)对图像进行编码完成后,视频时间戳即与该图像对应的图像帧相对应。
音频时间戳的计算方式为:AudioServer(具体为Record Thread实例)根据音频时间戳的通用公式,以计算音频帧对应的音频时间戳,音频时间戳的通用公式如下:
音频时间戳=N*l (1)
其中,N为读取次数,l为音频帧长(单位为毫秒(ms))。示例性的,读取次数为AudioServer(具体为Record Thread实例)周期性地从AudioHal(具体为Input Stream实例)读取音频的次数,音频帧长等于AudioServer的读取周期,即,AudioServer周期性地从AudioHal读取音频时的周期时长,可以理解为,麦克风采集并输出至AudioHal包括的音频流是持续的,AudioServer在每个读取周期的触发时刻,读取AudioHal获取到的音频流,即,AudioServer获取到的是一个或多个时长等于读取周期时长的音频流。需要说明的是,读取周期(即音频帧长)可由各生产厂家根据实际情况进行设置。举例说明,若AudioServer的读取周期为20ms,对应的每个音频帧的帧长为20ms,AudioServer每20ms从AudioHal读取一次音频,示例性的,第三次读取的音频对应的音频时间戳即为:3*20ms,即为60ms。
如图5所示为基于时间戳的音频与图像播放过程示意图,参照图5,在播放过程中,以参考时钟为基准,实现音频与图像的同步,举例说明,在播放时间戳为20ms的音频帧时,播放的是17ms时间戳对应的图像帧(即距离20ms参考时间最近的视频时间戳对应的图像帧)。需要说明的是,在本申请中均已参考时间轴与音频时间轴相同为例,也就是说,在播放过程中,是以音频时间戳为参考时钟,将图像同步到音频上,也可以理解为以音频的播放速度为基准来同步图像。在其他实施例中,参考时间轴还可以是图像时间轴或者是外部时钟,本申请不做限定。基于时间戳同步的具体实现细节可参照已有技术中的音频与图像同步方案,本申请不再赘述。
如上文所述,音频与图像同步是通过将音频时间戳与视频时间戳对齐实现的,但是,当音频和图像的时间戳与实际录制的物理时间(即现实世界的时间)存在偏差的情况下,即使时间戳对齐,仍然会出现音频与图像不同步的情况。
出现上述问题的原因可能是由于拍摄过程中的焦距变化。举例说明,相机应用可响应于检测到的用户操作行为,确定当前变焦倍数为15(倍)(图中显示的15x,即为变焦倍数为15)。手机可基于当前变焦倍数(例如15倍),调整拍摄焦距。
需要说明的是,在本申请实施例的描述中,拍摄焦距也可称为成像距离,即摄像头与变焦倍数所对应的变焦范围之间的距离。示例性的,手机内存中存储有不同变焦倍数和成像距离之间的对应关系,例如,可以是以关系表的形式存储。模块或实例(例如Audio HaL或Camera Hal)可通过查询该关系表,确定当前变焦倍数对应的成像距离。举例说明,若变焦倍数即为X,且X为3,则对应的成像距离为10米,即,摄像头采集距摄像头10米外的成像距离的画面。进一步需要说明的是,变焦倍数与成像距离的换算方式对于不同厂商的电子设备可能相同,也可能不同,本申请不做限定。例如,在相同变焦倍数X的情况下,A厂商的电子设备配置的对应于变焦倍数X的成像距离为8米,B厂商的电子设备配置的对应于变焦倍数X的成像距离为10米,具体取决于电子设备的配置和性能,本申请实施例中所涉及的变焦倍数与成像距离之间对应关系仅为示意性举例,本申请不做限定。
在图3的基础上,下面结合图6对变焦倍数调整场景下的模块交互流程进行说明。参照图6,相机应用获取到变焦倍数后,将变焦倍数输出至Camera Hal与Audio Hal。示例性的,Camera Hal向摄像头驱动输入变焦倍数,摄像头驱动控制摄像头基于变焦倍数,采集当前变焦倍数对应的变焦范围内的图像,摄像头变焦采集图像的具体实现方式可参照已有技术,本申请不做限定。
仍参照图6,下面对音频传输路径上的处理方式进行详细说明,具体的,Audio Hal可根据接收到的变焦倍数,通过录音定向增强算法实例将一个或多个麦克风采集到的音频进行处理,以实现收窄单声道波束,或者收窄立体声波束的夹角,从而可以保留变焦范围内的声音,并抑制变焦范围外的声音,以突出变焦范围内的声音,进而实现定向拾音。其中,变焦范围是指当前变焦倍数对应的拍摄范围。
需要说明的是,当焦距放大后(即变焦倍数增大),由于对应的成像距离增大,则麦克风采集到声音的时间与声音实际发生的时间之间存在声音传播时延。示例性的,如上文所述,在变焦倍数增大后,Audio Hal(具体为录音定向增强算法实例)会根据变焦倍数,对音频进行处理,在处理过程中,将会引入算法处理时延。需要说明的是,算法处理时延是指AudioHal中的录音定向增强算法在计算时,会等待至少一个音频帧的时长,例如等待两个音频帧的长度,例如40ms,才能确定前一帧音频的处理结果,例如增强的强度等,连续采样帧越多说明可参考信号越多,相应的算法处理效果越好,但是,等待的音频帧越多,则算法造成的时延越大,具体算法可参照已有技术,本申请不做赘述。
因此,由于声音传播时延和算法处理时延的影响,将会导致音频与图像不同步的问题。
下面以具体实施例对声音传播时延和算法处理时延对音频与图像同步的影响进行详细说明。示例性的,参照图7a为示例性示出的场景示意图,用户持手机距离拍摄对象为10米,其中,拍摄对象正在跳舞,并且,拍摄对象旁边(例如1米范围内)的手机正在同步播放音乐。
相机应用启动后,手机屏幕显示拍摄界面(或称为拍摄预览界面),如图7b所示,参照图7b,拍摄预览界面除显示当前拍摄的视频画面外,还包括但不限于焦距调节选项、录制开始选项、录制暂停选项、录制停止选项等。示例性的,在拍摄过程中,相机应用响应于用户指令,确定当前变焦倍数为6.1倍。相机应用将变焦倍数(即6.1倍)输出至Camera Hal与Audio Hal。Camera Hal与Audio Hal可通过查询变焦倍数与成像距离的对应关系表,确定变焦倍数为6.1倍对应的成像距离为10米,即,当前摄像头以及麦克风采集的图像和声音是距离手机10米处的图像和声音。需要说明的是,图7a和图7b中的各数值仅为示意性举例,在其他实施例中,例如,拍摄对象在距离摄像头10米处跳舞,手机检测到的变焦倍数为5.1,对应的成像距离为6米,则变焦范围即为6米处的拍摄画面。
如上文所述,变焦倍数的增大对视频画面并无影响,也就是说,手机生成的MP4文件中的每个图像帧对应的视频时间戳与该图像帧的画面实际发生时间之间并无误差,或误差可忽略不计。而由于声音传播时延以及算法处理时延的影响,MPR文件中的每个音频流(是指变焦后采集到的音频流)对应的音频时间戳与音频流对应的声音实际发生时间之间存在时延(即包括声音传播时延和算法处理时延),示例性的,在图7a所示的场景中,即成像距离为10米时,声音传输时延约为30ms,也就是说,麦克风当前时刻采集到的声音,实际上是拍摄对象旁边的手机在30ms前发出的。
举例说明,如图7c所示为在图7b所示的场景下拍摄的图像与音频之间的实际对应关系,参照图7c,示例性的,动作1所对应的图像帧1对应的音频帧为音频帧1,也就是说,拍摄对象在跳动作1时,拍摄对象旁边的手机播放的是音频帧1对应的音频。以此类推,图像帧2(即动作2所对应的图像帧)对应音频帧2、图像帧3对应音频帧3、图像帧4对应音频帧4。假设音频帧1的正确音频时间戳(即声音发生时间实际距离录制开始时间之间的时长)为20ms,音频帧2的正确音频时间戳为40ms、音频帧3的正确音频时间戳为60ms,音频帧4的正确音频时间戳为80ms。
而由于声音传播时延和算法处理时延的影响,导致手机生成的MP4文件中的音频与图像是不同步的。示例性的,在电子设备(例如手机)播放MP4文件中的图像帧和音频帧时,参照图7d,手机播放的图像帧2对应的是音频帧1,也就是说,在手机的视频画面显示的图像为图像帧2对应的图像(或画面)时,扬声器中播放的是音频帧1对应的音频,以此类推,视频画面显示的图像为图像帧3对应的图像时,扬声器播放的是音频帧2对应的音频等。图7d发生的原因为:写入MP4文件中的音频帧1的写入音频时间戳(即MP4文件中记录的对应于音频帧1的音频时间戳)为40ms、音频帧2的写入音频时间戳为60ms、音频帧3的写入音频时间戳为80ms、音频帧4的写入音频时间戳为100ms,因此,手机在基于音频时间戳(即写入音频时间戳)与视频时间戳播放对应的音频帧和图像帧时,将存在如图7d的问题发生,即,播放的舞蹈动作与音乐是不匹配的,音乐比舞蹈动作慢。
综上,由于声音传播时延和算法处理时延的影响,使得生成的音频时间戳与声音在物理世界发生的时间之间存在偏差,时延可能是几十甚至几百毫秒。而由于光的传播速度和系统处理时间对视频时间戳的影响可忽略不计,也就是说,视频时间戳与该视频时间戳对应的视频画面实际发生时间可认为是无偏差的,所以,导致即使在播放过程中采用音频时间戳与视频时间戳对齐的方式,而由于时延(包括声音传播时延和算法处理时延)的影响,音频和视频画面仍然不同步。为解决焦距变化导致的音频与图像不同步的问题,本申请提供一种视频处理方法,如图8所示为本申请的视频处理方法的原理图,参照图8,AudioServer生成并向Media Server输出的音频时间戳是将原音频时间戳(即基于公式1计算出的音频时间戳)减去时延(Latency)(也可称为音频时延)后的结果,其中,时延包括声音传播时延,或者,声音传播时延和算法处理时延,从而对音频时间戳校准,实现音频与图像同步。需要说明的是,本申请均是以对音频时间戳进行处理的执行主体为AudioServer(具体为Record Thread实例)为例进行说明的,在其他实施例中,对音频时间戳进行处理的执行主体也可以是电子设备中的其他模块或实例,例如Media Server,可选地为AudioRecord实例,或者是Audio Hal,可选地为Input Stream实例,本申请不做限定。
下面以几个具体实施例对本申请的技术方案进行详细说明。
实施例一
具体的,手机响应于用户操作行为,启动相机应用,相机应用识别初始变焦倍数为X,示例性的,本实施例中以变焦倍数为3倍为例进行说明,在其他实施例中,变焦倍数也可以是5倍、1.5倍等,本申请不做限定。
示例性的,相机应用启动后,执行各实例的创建过程,具体细节可参照图3的相关描述,此处不再赘述。示例性的,各实例的创建过程完成后,或者是各实例的创建过程中,相机应用向Camera Hal和Audio Hal输出变焦倍数X,具体细节可参照图6的相关描述,此处不赘述。
一种可能的实现方式中,Audio HAL可基于接收到的变焦倍数的情况,确定是否需要触发本申请实施例的视频处理方法。示例性的,相机应用启动后,相机应用向Audio HAL输出初始变焦倍数,可选地,初始变焦倍数可以大于或等于1。一个示例中,Audio HAL接收到相机应用输入的变焦倍数X,且检测到变焦倍数X大于设定的变焦倍数,例如2倍,AudioHAL确定需要触发本申请的视频处理方法。另一个示例中,若Audio HAL检测到变焦倍数小于或等于设定的变焦倍数,则确定不触发本申请所述的技术方案,即按照上文中的附图3所示的录制流程进行处理。需要说明的是,初始变焦倍数可以是上一次录制过程中相机应用最后一次获取并保存的变焦倍数,或者,初始变焦倍数可以是用户在预览界面(尚未开始录制时的界面)中设置的变焦倍数。可选地,用户可通过拍摄界面提供的变焦倍数选项设置对应的变焦倍数。可选地,用户可通过拍摄界面提供的模式设置选项,设置对应的变焦倍数,示例性的,不同的模式对应不同的变焦倍数,例如,远景拍摄模式对应的变焦倍数为5倍,本申请不做限定。
另一种可能的实现方式中,Audio HAL可在开始录制后,即执行本申请实施例中的技术方案,也就是说,在变焦倍数小于设定的变焦倍数,例如变焦倍数为1倍的场景下,Audio HAL仍然会执行本申请的技术方案,例如基于时延对音频时间戳进行修正,而与变焦倍数大于设定的变焦倍数的场景不同的是,Audio HAL在变焦倍数为1的场景下获取到的时延为0,音频时间戳修正后的结果与修正前的结果是一致的。
需要说明的是,如无特殊说明的情况下,图像线程的处理流程仍可参照图3所示的流程,下面的实施例中仅对音频线程的处理流程进行详细说明。
仍参照图8,具体的,麦克风驱动从麦克风获取麦克风采集的音频流,麦克风驱动将获取到的音频流输入至Audio Hal。
具体的,Audio Hal中的录音定向增强算法实例可根据变焦倍数X,对音频流进行处理。示例性的,录音定向增强算法实例对音频流的处理包括但不限于:增强变焦范围内的音频、降噪等处理。录音定向增强算法实例将处理后的音频流输出至Input Stream实例,Input Stream实例对音频流进一步处理,处理包括但不限于:重采样、声道变换等处理。
在本申请中,Audio Hal的Input Stream实例除对音频流进行处理外,还会获取时延(包括声音传播时延,或者声音传播时延和算法处理时延),以在Audio Server的RecordThread实例周期性地从Input Stream实例读取数据时,向Record Thread实例输出音频流和时延(也可称为时延信息)。
下面对Audio Hal的Input Stream实例获取时延的方式进行说明。具体的,如上文所述,时延可以包括声音传播时延,或者,声音传播时延和算法处理时延。需要说明的是,如果声音传播时延远大于算法处理时延,则算法处理时延可忽略不计,举例说明,假如麦克风的有效采集范围可以达到30米甚至更远,那么,声音传播时延会达到100ms以上,若算法处理时延为20~40ms,则该算法处理时延对于声音传播时延可忽略不计。可选地,在该示例中,Input Stream实例仍然可向Record Thread实例输出音频流和声音传播时延以及算法处理时延,Record Thread实例在计算音频时间戳时,忽略算法处理时延。可选地,InputStream实例可仅向Record Thread实例输出音频流和声音传播时延。
示例性的,声音传播时延的计算方式为:
Figure BDA0002651805940000231
其中,d表示与变焦倍数X对应的成像距离(单位为米(m)),c为声音在空气中的传播速度(340米(m)/秒(s))。
在本申请中,算法处理时延为固定值,该值为通过实验所得,范围约为1~100ms之间,具体取值根据实验结果设置,本申请不做限定。
如图9所示为Audio Hal、Audio Server以及Media Server之间的交互示意图,需要说明的是,在图9的相关描述中,均是以各模块中的实例为主体进行说明的,在图9中:
S101,AudioServer获取Audio Hal输入的音频流和时延。
具体的,AudioServer的Record Thread实例周期性地从Audio Hal的InputStream实例中读取音频流和时延,在本申请中,以读取周期为20ms为例进行说明,也就是说,音频帧的帧长为20ms(相关概念见上文音频时间戳的计算方法)。在其他实施例中,周期长度与音频帧长也可以是其它数值,本申请不做限定。
一个示例中,时延可以只包括声音传播时延,另一个示例中,时延可以包括声音传播时延和算法处理时延。
在一种可能的实现方式中,若Audio Hal检测到变焦倍数大于设定的变焦倍数,例如2倍,则Audio Hal触发录音定向算法,即录音定向算法实例基于录音定向算法,对音频流进行处理,相应的,处理过程中将会引入算法处理时延,则Audio Hal向AudioServer输入的时延包括算法处理时延和声音传播时延。若Audio Hal检测到变焦倍数小于或等于设定的变焦倍数,则Audio Hal不触发录音定向算法,即不存在算法处理时延,Audio Hal向AudioServer输入的时延包括声音传播时延。
S102,AudioServer基于时延,获取音频时间戳。
示例性的,AudioServer的Record Thread实例可根据下述公式,得到音频时间戳(单位为ms):
音频时间戳=N*l-latency (3)
其中,N为读取次数,即第N个读取周期,l为音频帧长(单位为ms),latency为时延(单位为ms)。
需要说明的是,音频时间戳是按照音频帧时长(例如20ms)的倍数取整后的结果,也就是说,Record Thread实例基于公式(3)计算出的结果需向20ms的倍数取整,举例说明,基于公式(3)计算出的结果为38ms,则向20ms的倍数取整后的音频时间戳为40ms。
结合公式(1)和公式(3)可知,本申请通过将音频时间戳减去时延,从而实现对音频时间戳的矫正。
S103,AudioServer向MediaServer输出音频流和音频时间戳。
仍参照图9,具体的,AudioServer的Record Thread实例获取到音频时间戳后,将音频流与对应的音频时间戳输出至MediaServer(具体为Auido Record实例)。
在录制过程中,AudioServer(具体为Record Thread实例)周期性(例如周期为20ms)地执行S101~S103,也就是说,Record Thread实例每20ms读取一个音频流,并获取与该音频流对应的音频时间戳,并输出至Auido Record实例。
参照图8,Audio Server将音频时间戳和音频流输出至Media Server,并经由Media Server中的各实例,对音频流和时间戳进行处理(过程可参照图4中的相关描述,此处不赘述),以生成MP4文件,MP4文件中的视频时间戳与音频时间戳的对应关系可参照图4。
在一种可能的实现方式中,时延的计算也可以由AudioServer,例如RecordThread实例执行,示例性的,AudioServer可周期性地从AudioHal读取音频和当前变焦倍数,并根据当前变焦倍数计算出声音传播时延,以及,AudioServer可基于上述音频时间戳的计算公式,计算出矫正后的音频时间戳。在其他实施例中,也可以由AudioHal或者MediaServer计算矫正后的音频时间戳,具体方法与AudioServer类似,此处不赘述。
实施例二
实施例一所述的方案是在变焦倍数X保持不变的情况下执行的,实际上,在拍摄过程中,相机应用可响应于用户操作行为,控制变焦倍数变换,而基于本申请的音频时间戳矫正方案处理后的音频时间戳,由于变焦倍数的频繁变换,可能会发生音频时间戳抖动问题,使得音频不连续,本申请可采用实施例二所述的方案,以有效变焦倍数变换导致音频时间戳抖动问题。
在介绍对音频时间戳的纠偏方案之前,首先对发生音频时间戳抖动的原因进行介绍。
在录制过程中,相机应用可基于用户操作行为,调整变焦倍数,假设调整后的变焦倍数为Y。
一个示例中,如果变焦倍数Y大于变焦倍数X,即变焦倍数增大,也就是说拍摄距离(或称为成像距离)增加,则可能造成当前音频时间戳小于或等于前一个音频时间戳。具体原因如下:
Figure BDA0002651805940000251
其中,d2为与变焦倍数Y对应的成像距离(单位为米),d1为与变焦倍数X对应的成像距离(单位为米),N即为当前读取次数(也可以理解为当前读取周期),(N-1)即为上一个读取次数(即上一个读取周期),p为算法处理时延,由此可见,由于成像距离的增加,导致声音传输距离增加,即d2大于d1,相应的,声音传播时延也会增大,如上文所述,时延为声音传播时延与算法处理时延之和,也就是说当前时延(设为latency2)与前一周期的时延(设为latency1)之差大于或等于音频帧长,表示为latency2-latency1≥音频帧长(20ms)。相应的,当前周期读取的音频帧对应的音频时间戳(记为录制音频时间戳2)将会小于或等于上一个周期读取的音频帧对应的音频时间戳(记为录制音频时间戳1),表示为:录制音频时间戳2-录制音频时间戳1≤0ms,需要说明的是,录制音频时间戳1和录制音频时间戳2仅为更好地表示录制音频时间戳之间的关系的示例性举例,本申请对音频时间戳的编号不做限定,如图10a所示,参照图10a,预期音频时间戳,或者说是写入MP4文件的音频时间戳(简称为写入音频时间戳)应为:0ms、20ms、40ms、60ms、80ms(图中仅以4个音频流对应的音频时间戳为例进行说明)。也就是说,正确的音频时间戳应为图10a中的写入音频时间戳。为与写入音频时间戳区分,将未修正前的音频时间戳称为录制音频时间戳,示例性的,参照图10a,其示出了写入音频时间戳与录制音频时间戳的对比情况,例如,在原本应该为40ms的音频时间戳(即写入音频时间戳为40ms),由于变焦倍数的增大,使得录制音频时间戳(即录制音频时间戳2)为20ms,即与上一周期的录制音频时间戳(即录制音频时间戳1)相等,可以表示为录制音频时间戳2-录制音频时间戳1=0。并且,原本应该为60ms的音频时间戳,经过处理后的录制音频时间戳为40ms,原本应该为80ms的音频时间戳,经过处理后的录制音频时间戳为60ms,即,从变焦倍数改变时刻开始,后续的每个录制音频时间戳,都与期望的或者说是正确的写入音频时间戳相差20ms。也可以理解为,如果播放的是图10a所示的录制音频时间戳对应的音频帧,则第40ms播放的音频将会是第20ms采集到的音频。
另一个示例中,如果变焦倍数Y小于变焦倍数X,即变焦倍数放大,也就是说成像距离增加,则可能造成当前录制音频时间戳与上一个录制音频时间戳的间隔大于或等于40ms,具体原因如下:
Figure BDA0002651805940000261
由公式可知,前一周期的时延(设为latency1)与当前时延(设为latency2)之差大于或等于音频帧长,表示为latency1-latency2≥音频帧长(20ms)。相应的,当前录制音频时间戳与上一个录制音频时间戳的间隔大于或等于40ms(即2倍的音频帧长,也可表示为2倍的读取周期时长),表示为录制音频时间戳2-录制音频时间戳1≥40ms,如图11a所示,参照图11a,示例性的,本应该为40ms的音频时间戳由于变焦倍数的减小,造成时延减小,使得处理后的录制音频时间戳为60ms,可以表示为录制音频时间戳2-录制音频时间戳1=40ms。并且,原本应该为60ms的音频时间戳,经过处理后的录制音频时间戳为80ms,即,从变焦倍数改变时刻开始,后续的每个录制音频时间戳,都与期望的或者说是正确的写入音频时间戳相差20ms。也可以理解为,如果播放的是图11a所示的录制音频时间戳对应的音频帧,则第40ms播放的音频将会是第60ms采集到的音频。
如上文所述,在计算音频时间戳时,是按照向20ms取整得到的,也就是说,音频时间戳均是20ms的倍数,而如果latency2大于latency1,且两者差值小于音频帧长(20ms),或者,latency1大于latency2,且两者差值小于音频帧长时,则计算出的音频时间戳不会存在抖动问题。举例说明,基于声音传播公式,声音在20ms内的传输距离约为6.8m,也就是说,当变焦倍数的变化使得拍摄距离的增加或缩小6.8m或之上的情况下,将会存在音频时间戳抖动的问题。
下面结合图12,对实施例二中所述的对音频时间戳的纠偏方式进行详细说明。在图12中:
S201,AudioHal获取调整后的变焦倍数Y。
具体的,在录制过程中,相机应用可响应于检测到的用户操作行为,确定当前拍摄的变焦倍数,调整后的变焦倍数Y可以大于变焦倍数X,也可以小于变焦倍数X。结合图6,相机应用可将调整后的变焦倍数Y输出至AudioHal(具体为Input Stream实例)。
S202,AudioHal获取音频流和时延。
示例性的,AudioHal(具体为Input Stream实例可基于变焦倍数Y,获取声音传播时延,并确定时延为声音传播时延(ms)与算法处理时延之和。具体获取方式可参照实施例一,此处不再赘述。
需要说明的是,如非特殊说明,图12中的其它实施未示出的细节可参照图8和图9的相关描述,本实施例中不再赘述。
S203,AudioServer获取AudioHal输入的音频流和时延。
示例性的,如上文所述,Audio Server(具体为Record Thread实例)是周期性(例如20ms)地从读取AudioHal(具体为Input Stream)读取音频流和时延的,在图12所示的流程中,仅以当前读取周期为例进行说明,也就是说,每个读取周期内,AudioHal均会执行图12中的相关步骤。
示例性的,在本实施例中,以变焦倍数调整前对应的时延为latency1,变焦倍数调整后对应的时延为latency2为例进行说明。也就是说,Record Thread实例从Input Stream实例获取到音频流以及latency2。
S204,AudioServer基于时延,获取录制音频时间戳2。
录制音频时间戳2的计算方式可参照S102中的描述,此处不再赘述。
S205,AudioServer判断录制音频时间戳2与录制音频时间戳1之间的差值是否在差值范围。
具体的,差值范围为大于0且小于2倍的读取周期时长,表示为(0,2l),l为读取周期时长(即音频帧长)。
一个示例中,若录制音频时间戳2与录制音频时间戳1之间的差值大于0且小于2l,例如,0ms<录制音频时间戳2-录制音频时间戳1<40ms,也就是说,当前周期时延与前一周期时延之间的时延差小于20ms,包括:latency2-latency1<20ms,latency1-latency2<20ms,即在变焦倍数保持不变,或者变焦倍数变化较小的情况下,Audio Server(具体为Record Thread实例)确定录制音频时间戳2与录制音频时间戳1之间的差值在差值范围内,执行步骤206。
另一个示例中,若录制音频时间戳2与录制音频时间戳1之间的差值不在差值范围内,即录制音频时间戳2-录制音频时间戳1≤0ms,或者,录制音频时间戳2-录制音频时间戳1≥40ms,则执行S207。
S206,AudioServer将录制音频时间戳2及音频流输出至Media Server。
示例性的,若AudioServer(具体为Record Thread实例)在S205中确定两个录制音频时间戳的差值在差值范围内,则将录制音频时间戳2及对应的音频流输入至MediaServer,Media Server可将录制音频时间戳2及音频帧写入MP4文件。可选地,录制音频时间戳写入MP4文件后,也可称为写入音频时间戳。
S207,AudioServer判断所述差值是否小于差值范围。
一个示例中,若录制音频时间戳2-录制音频时间戳1≤0ms,即,录制音频时间戳2与录制音频时间戳1之间的差值小于差值范围,也就是说,当前周期对应的时延(latency2)大于前一周期对应的时延,且两者差值大于或等于音频帧长(20ms),即latency2-latency1≥20ms,即在变焦倍数变大的场景下,执行步骤208。
另一个示例中,若录制音频时间戳2-录制音频时间戳1≥40ms,即,录制音频时间戳2与录制音频时间戳1之间的差值大于差值范围,也就是说,在当前周期对应的时延(latency2)小于前一周期对应的时延,且两者差值大于或等于音频帧长(20ms),即latency1-latency2≥20ms,即,变焦倍数减小的场景下,执行步骤209。
S208,AudioServer丢弃音频流和录制音频时间戳2。
参照图12,示例性的,AudioServer(具体为Record Thread实例)周期性地从AudioHal(具体为Input Stream实例)读取音频流和时延,并获取对应的录制音频时间戳,若在步骤205中,确定录制音频时间戳2-录制音频时间戳1≤0ms之后,Record Thread实例丢弃该音频时间戳(即录制音频时间戳2)及对应的音频帧,也就是说,跳过该音频帧,并向MediaServer(具体为Audio Record实例)输出下一个周期的音频帧及音频时间戳,抖动处理(或者称为修正处理、校正处理等)后的音频时间戳即如图10b所示,参照图10b,RecordThread实例将第二个重复的20ms音频时间戳(即上文所述录制音频时间戳2)及其对应的音频流丢弃,则写入MP4文件的音频流对应的音频时间戳(即图10b中处理后音频时间戳)依次为:0ms、20ms、40ms、60ms。
举例说明,参考声音传播速度,声音每20ms传播的距离为6.8m,以6.8m为梯度进行计算,即,变焦倍数变换后使得声音的拾取距离每增加6.8m,则声音时延将会增大20ms,相应的,声音时延每增大20ms,将会丢弃一个周期的音频帧及其时间戳。
AudioServer丢弃音频帧及其音频时间戳后,将在下一个周期重复执行S201及其后续步骤。
S209,AudioServer进行插帧补偿。
具体的,如图11a可知,由于变焦倍数减小,造成当前音频帧的音频时间戳与上一个音频帧的时间戳大于或等于40ms,即,录制音频时间戳2-录制音频时间戳1≥40ms,在本申请中,AudioServer(具体为Record Thread)可对当前音频帧与上一个音频帧之间进行插针补偿,以防止音频抖动。具体的,参照图12,Record Thread指示AudioHal进行插入帧的音频时间戳的计算,插入的音频帧的音频时间戳为(简称插入音频时间戳):
Figure BDA0002651805940000281
其中,各参数的含义与上文一致,此处不再赘述。也就是说,AudioHal根据变焦倍数Y与变焦倍数X对应的成像距离的中间值,计算出音频时间戳。AudioServer在本周期内二次读取AudioHal输出的音频帧和音频时间戳(即为插入的音频时间戳),并将该音频时间戳,插入间隔为40ms的两个音频时间戳之间,如图11b所示,参照图11b,MP4文件中的音频对应的音频时间戳依次为:0ms、20ms、40ms(即插入音频时间戳)、60ms。
示例性的,插入的音频时间戳对应的音频帧可以是前一个音频帧做淡入淡出后的结果。
S210,AudioServer将当前音频流和录制音频时间戳2,以及插入音频流和插入音频时间戳对应输出至Media Server。
仍参照图12,AudioServer将两次读取到的音频流以及对应的音频时间戳,即新插入的音频时间戳及其对应的音频流,以及,当前的音频时间戳(即录制音频时间戳2)及其对应的音频流输出至Media Server(具体为Audio Record实例),Media Server可将新插入的音频时间戳及其对应的音频帧,以及,当前的音频时间戳及其对应的音频帧写入MP4文件,并在下一个周期,重新执行S201及其后续步骤。
需要说明的是,图12中的S204~S209均是基于录制音频时间戳2与录制音频时间戳1之间的差值的判断结果执行的,在一种可能的实现方式中,AudioServer可以基于获取到的当前周期的时延与前一周期的时延之间的时延差,确定后续的处理方式,如图13所示为在S203之后的另一种处理方式,在图13中:
S301,AudioServer判定当前周期时延与前一周期时延之间的时延差是否在预设范围。
一个示例中,如果当前周期对应的时延(latency2)大于前一周期对应的时延,且两者差值大于或等于音频帧长(20ms),即latency2-latency1≥20ms,也就是说,变焦倍数变大的情况下,Audio Server(具体为Record Thread实例)确定当前周期时延与前一周期时延之间的时延差不在预设范围内,执行S304。
另一个示例中,如果当前周期对应的时延(latency2)小于前一周期对应的时延,且两者差值大于或等于音频帧长(20ms),即latency1-latency2≥20ms,也就是说,变焦倍数变小的情况下,Audio Server(具体为Record Thread实例)确定当前周期时延与前一周期时延之间的时延差不在预设范围内,执行S304。
又一个示例中,如果当前周期时延与前一周期时延之间的时延差小于20ms,包括:latency2-latency1<20ms,latency1-latency2<20ms,也就是说变焦倍数保持不变,或者变焦倍数变化较小的情况下,Audio Server(具体为Record Thread实例)确定当前周期时延与前一周期时延之间的时延差在预设范围内,执行S302。
S302,AudioServer基于时延,获取录制音频时间戳2。
S303,AudioServer将录制音频时间戳2及音频流输出至Media Server。
示例性的,若AudioServer(具体为Record Thread实例)在S301中确定两个时延的时间差在预设范围内,则AudioServer获取对应的录制音频时间戳2,并将音频时间戳及音频流输入至Media Server,Media Server可将音频时间戳及音频帧写入MP4文件。
S304,AudioServer判定当前周期的时延是否大于前一周期的时延。
示例性的,在当前周期时延与前一周期时延之间的时延差不在预设范围的情况下,若当前周期对应的时延(latency2)大于前一周期对应的时延,则执行S305。若当前周期对应的时延(latency2)小于前一周期对应的时延,则执行S306。
S305,AudioServer丢弃音频流。
S306,AudioServer进行插帧补偿。
S307,AudioServer将当前音频流和录制音频时间戳2,以及插入音频流和插入音频时间戳对应输出至Media Server。
S305-S307的具体内容分别与S207-S209的内容相同,此处不赘述
综上,在本申请实施例中,电子设备可基于当前变焦倍数,调整音频的时间戳,以抵消定向采集声音时的电子设备与声源间的距离所造成的时延。并且,电子设备还可以基于变焦倍数的变化,动态调整音频时间戳,以抑制变焦倍数变化导致的时间戳抖动,以提供一种视频处理方式,可有效对音频时延进行矫正,以实现音频与图像同步。
可以理解的是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件和/或软件模块。结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
一个示例中,图14示出了本申请实施例的一种装置200的示意性框图装置200可包括:处理器201和收发器/收发管脚202,可选地,还包括存储器203。
装置200的各个组件通过总线204耦合在一起,其中总线204除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图中将各种总线都称为总线204。
可选地,存储器203可以用于前述方法实施例中的指令。该处理器201可用于执行存储器203中的指令,并控制接收管脚接收信号,以及控制发送管脚发送信号。
装置200可以是上述方法实施例中的电子设备或电子设备的芯片。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现上述实施例中的视频处理方法。
本实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的视频处理方法。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的视频处理方法。
其中,本实施例提供的电子设备、计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
本申请各个实施例的任意内容,以及同一实施例的任意内容,均可以自由组合。对上述内容的任意组合均在本申请的范围之内。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。

Claims (27)

1.一种视频处理方法,其特征在于,包括:
检测到用户的第一指令;
响应于所述第一指令,显示拍摄界面;
获取第一变焦倍数,并获取所述第一变焦倍数对应的第一视频,其中,所述第一视频包括第一音频和第一图像;所述第一音频和所述第一图像对应,所述第一图像包括被拍摄物体,所述第一音频根据声源发出的声音生成,所述声源为所述被拍摄物体,或者,所述声源与所述被拍摄物体的距离在设定的范围内;
获取所述第一音频对应的第一时延,所述第一时延包括第一声音传播时延,或者,所述第一时延包括所述第一声音传播时延和设定的算法处理时延,所述第一声音传播时延为所述声源发出的声音从所述声源传输至电子设备导致的时延;
基于所述第一时延,确定所述第一音频的第一音频时间戳;
在所述拍摄界面,显示所述第一图像,并且,保存所述第一图像,以及所述第一音频和所述第一音频时间戳的对应关系。
2.根据权利要求1所述的方法,其特征在于,所述保存所述第一图像,以及所述第一音频和所述第一音频时间戳的对应关系之后,方法还包括:
根据所述第一音频时间戳,将所述第一音频和所述第一图像同步播放。
3.根据权利要求1所述的方法,其特征在于,所述获取所述第一音频对应的第一时延,包括:
根据所述第一变焦倍数,以及变焦倍数与成像距离的对应关系,获取所述第一变焦倍数对应的第一成像距离;
基于下述公式,计算所述第一声音传播时延:
Figure FDA0002651805930000011
其中,d1为所述第一成像距离,c为声音在拍摄的介质中的传播速度;
所述基于所述第一音频对应的时延,确定所述第一音频的第一音频时间戳,包括:
基于下述公式,计算所述第一音频时间戳:
第一音频时间戳=N1*l-latency1
其中,latency1为所述第一时延,l为读取周期的周期时长,所述读取周期为从视频录制起始时刻周期性地读取采集点已采集的音频的周期,N1为所述第一音频对应的读取周期,N1为大于或等于1的整数。
4.根据权利要求3所述的方法,其特征在于,所述保存所述第一图像,以及所述第一音频和所述第一音频时间戳的对应关系之后,方法还包括:
检测到用户的第二指令;
根据所述第二指令,获取第二变焦倍数,并获取所述第二变焦倍数对应的第二视频,其中,所述第二视频包括第二音频和第二图像;所述第二图像包括另一被拍摄物体,所述第二音频根据另一声源发出的声音生成,所述另一声源为所述另一被拍摄物体,或者,所述另一声源与所述另一被拍摄物体的距离在所述设定的范围内;所述第二变焦倍数与所述第一变焦倍数不同;
获取所述第二音频对应的第二时延,所述第二时延包括第二声音传播时延,或者,所述第二时延包括所述第二声音传播时延和所述算法处理时延,其中,所述第二声音传播时延为所述另一声源发出的声音从所述另一声源传输至所述电子设备导致的时延;
基于所述第二时延,确定所述第二音频的第二音频时间戳。
5.根据权利要求4所述的方法,其特征在于,所述获取所述第二音频对应的第二时延,包括:
根据所述第二变焦倍数,以及变焦倍数与成像距离的对应关系,获取所述第二变焦倍数对应的第二成像距离;
基于下述公式,计算所述第二声音传播时延:
Figure FDA0002651805930000021
其中,d2为所述第二成像距离。
6.根据权利要求5所述的方法,其特征在于,所述基于所述第二时延,确定所述第二音频的第二音频时间戳,包括:
基于下述公式,计算所述第二音频时间戳:
第二音频时间戳=N2*l-latency2
其中,latency2为所述第二时延,N2为所述第二音频对应的读取周期,N2与N1为相邻周期,且N2大于N1。
7.根据权利要求6所述的方法,其特征在于,所述确定所述第二音频的第二音频时间戳之后,包括:
基于下述公式,获取所述第二音频时间戳与所述第一音频时间戳之间的差值:
差值=第二音频时间戳-第一音频时间戳
若所述差值大于0且小于2l,在所述拍摄界面,显示所述第二图像,并且,保存所述第二图像,以及所述第二音频和所述第二音频时间戳的对应关系。
8.根据权利要求7所述的方法,其特征在于,
若所述差值小于0,在所述拍摄界面,显示所述第二图像,并且,保存所述第二图像,以及,丢弃所述第二音频和所述第二音频时间戳。
9.根据权利要求8所述的方法,其特征在于,所述保存所述第二图像,以及,丢弃所述第二音频和所述第二音频时间戳之后,还包括:
根据第三音频时间戳,将第三音频和所述第二图像同步播放;其中,所述第三音频时间戳与所述第三音频对应,所述第三音频为在所述第二音频对应的读取周期的下一个读取周期获取到的。
10.根据权利要求7所述的方法,其特征在于,
若所述差值大于或等于2l,显示所述第二图像,并且,保存所述第二图像,所述第二音频和所述第二音频时间戳的对应关系,以及插入音频和插入音频时间戳的对应关系;
其中,所述插入音频为基于所述第二音频所得;
所述插入音频时间戳为基于下述公式所得:
Figure FDA0002651805930000031
或者,
Figure FDA0002651805930000032
其中,p为所述算法处理时延。
11.根据权利要求10所述的方法,其特征在于,所述保存所述第二图像,所述第二音频和所述第二音频时间戳的对应关系,以及插入音频和插入音频时间戳的对应关系之后,还包括:
根据所述插入音频时间戳,将所述插入音频和所述第二图像同步播放。
12.根据权利要求1所述的方法,其特征在于,所述获取所述第一音频对应的第一时延,包括:
当所述第一变焦倍数大于设定的变焦倍数,获取所述第一音频对应的第一时延。
13.根据权利要求1所述的方法,其特征在于,所述获取所述第一变焦倍数,包括:
读取已存储的前一次视频录制结束前最后一次获取到的变焦倍数;
或者,
检测到用户的变焦指令,响应于所述变焦指令,获取所述第一变焦倍数;
或者,
检测到用户的模式设置指令,响应于所述模式设置指令,确定第一变焦模式,并根据变焦模式与变焦倍数的对应关系,获取所述第一变焦模式对应的所述第一变焦倍数。
14.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器;
以及一个或多个计算机程序,其中所述一个或多个计算机程序存储在所述存储器上,当所述计算机程序被所述一个或多个处理器执行时,使得所述电子设备执行以下步骤:
检测到用户的第一指令;
响应于所述第一指令,显示拍摄界面;
获取第一变焦倍数,并获取所述第一变焦倍数对应的第一视频,其中,所述第一视频包括第一音频和第一图像;所述第一音频和所述第一图像对应,所述第一图像包括被拍摄物体,所述第一音频根据声源发出的声音生成,所述声源为所述被拍摄物体,或者,所述声源与所述被拍摄物体的距离在设定的范围内;
获取所述第一音频对应的第一时延,所述第一时延包括第一声音传播时延,或者,所述第一时延包括所述第一声音传播时延和设定的算法处理时延,所述第一声音传播时延为所述声源发出的声音从所述声源传输至所述电子设备导致的时延;
基于所述第一时延,确定所述第一音频的第一音频时间戳;
在所述拍摄界面,显示所述第一图像,并且,保存所述第一图像,以及所述第一音频和所述第一音频时间戳的对应关系。
15.根据权利要求14所述的方法,其特征在于,当所述计算机程序被所述一个或多个处理器执行时,使得所述电子设备执行以下步骤:
根据所述第一音频时间戳,将所述第一音频和所述第一图像同步播放。
16.根据权利要求14所述的方法,其特征在于,当所述计算机程序被所述一个或多个处理器执行时,使得所述电子设备执行以下步骤:
根据所述第一变焦倍数,以及变焦倍数与成像距离的对应关系,获取所述第一变焦倍数对应的第一成像距离;
基于下述公式,计算所述第一声音传播时延:
Figure FDA0002651805930000041
其中,d1为所述第一成像距离,c为声音在拍摄的介质中的传播速度;
所述电子设备还执行以下步骤:
基于下述公式,计算所述第一音频时间戳:
第一音频时间戳=N1*l-latency1
其中,latency1为所述第一时延,l为读取周期的周期时长,所述读取周期为从视频录制起始时刻周期性地读取采集点已采集的音频的周期,N1为所述第一音频对应的读取周期,N1为大于或等于1的整数。
17.根据权利要求16所述的方法,其特征在于,当所述计算机程序被所述一个或多个处理器执行时,使得所述电子设备执行以下步骤:
检测到用户的第二指令;
根据所述第二指令,获取第二变焦倍数,并获取所述第二变焦倍数对应的第二视频,其中,所述第二视频包括第二音频和第二图像;所述第二图像包括另一被拍摄物体,所述第二音频根据另一声源发出的声音生成,所述另一声源为所述另一被拍摄物体,或者,所述另一声源与所述另一被拍摄物体的距离在所述设定的范围内;所述第二变焦倍数与所述第一变焦倍数不同;
获取所述第二音频对应的第二时延,所述第二时延包括第二声音传播时延,或者,所述第二时延包括所述第二声音传播时延和所述算法处理时延,其中,所述第二声音传播时延为所述另一声源发出的声音从所述另一声源传输至所述电子设备导致的时延;
基于所述第二时延,确定所述第二音频的第二音频时间戳。
18.根据权利要求17所述的方法,其特征在于,当所述计算机程序被所述一个或多个处理器执行时,使得所述电子设备执行以下步骤:
根据所述第二变焦倍数,以及变焦倍数与成像距离的对应关系,获取所述第二变焦倍数对应的第二成像距离;
基于下述公式,计算所述第二声音传播时延:
Figure FDA0002651805930000051
其中,d2为所述第二成像距离。
19.根据权利要求18所述的方法,其特征在于,当所述计算机程序被所述一个或多个处理器执行时,使得所述电子设备执行以下步骤:
基于下述公式,计算所述第二音频时间戳:
第二音频时间戳=N2*l-latency2
其中,latency2为所述第二时延,N2为所述第二音频对应的读取周期,N2与N1为相邻周期,且N2大于N1。
20.根据权利要求19所述的方法,其特征在于,当所述计算机程序被所述一个或多个处理器执行时,使得所述电子设备执行以下步骤:
基于下述公式,获取所述第二音频时间戳与所述第一音频时间戳之间的差值:
差值=第二音频时间戳-第一音频时间戳
若所述差值大于0且小于2l,在所述拍摄界面,显示所述第二图像,并且,保存所述第二图像,以及所述第二音频和所述第二音频时间戳的对应关系。
21.根据权利要求20所述的方法,其特征在于,当所述计算机程序被所述一个或多个处理器执行时,使得所述电子设备执行以下步骤:
若所述差值小于0,在所述拍摄界面,显示所述第二图像,并且,保存所述第二图像,以及,丢弃所述第二音频和所述第二音频时间戳。
22.根据权利要求21所述的方法,其特征在于,当所述计算机程序被所述一个或多个处理器执行时,使得所述电子设备执行以下步骤:
根据第三音频时间戳,将第三音频和所述第二图像同步播放;其中,所述第三音频时间戳与所述第三音频对应,所述第三音频为在所述第二音频对应的读取周期的下一个读取周期获取到的。
23.根据权利要求20所述的方法,其特征在于,当所述计算机程序被所述一个或多个处理器执行时,使得所述电子设备执行以下步骤:
若所述差值大于或等于2l,显示所述第二图像,并且,保存所述第二图像,所述第二音频和所述第二音频时间戳的对应关系,以及插入音频和插入音频时间戳的对应关系;
其中,所述插入音频为基于所述第二音频所得;
所述插入音频时间戳为基于下述公式所得:
Figure FDA0002651805930000061
或者,
Figure FDA0002651805930000062
其中,p为所述算法处理时延。
24.根据权利要求23所述的方法,其特征在于,当所述计算机程序被所述一个或多个处理器执行时,使得所述电子设备执行以下步骤:
根据所述插入音频时间戳,将所述插入音频和所述第二图像同步播放。
25.根据权利要求14所述的方法,其特征在于,当所述计算机程序被所述一个或多个处理器执行时,使得所述电子设备执行以下步骤:
当所述第一变焦倍数大于设定的变焦倍数,获取所述第一音频对应的第一时延。
26.根据权利要求14所述的方法,其特征在于,当所述计算机程序被所述一个或多个处理器执行时,使得所述电子设备执行以下步骤:
读取已存储的前一次视频录制结束前,最后一次获取到的变焦倍数;
或者,
检测到用户的变焦指令,响应于所述变焦指令,获取所述第一变焦倍数;
或者,
检测到用户的模式设置指令,响应于所述模式设置指令,确定第一变焦模式,并根据变焦模式与变焦倍数的对应关系,获取所述第一变焦模式对应的所述第一变焦倍数。
27.一种计算机可读存储介质,包括计算机程序,其特征在于,当所述计算机程序在电子设备上运行时,使得所述电子设备执行如权利要求1-13中任意一项所述的视频处理方法。
CN202010883703.9A 2020-08-26 2020-08-26 视频处理方法及电子设备 Active CN114125258B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN202010883703.9A CN114125258B (zh) 2020-08-26 2020-08-26 视频处理方法及电子设备
CN202310404489.8A CN116437197A (zh) 2020-08-26 2020-08-26 视频处理方法及电子设备
PCT/CN2021/113153 WO2022042387A1 (zh) 2020-08-26 2021-08-18 视频处理方法及电子设备
EP21860225.8A EP4195653A4 (en) 2020-08-26 2021-08-18 VIDEO PROCESSING METHOD AND ELECTRONIC DEVICE
US18/173,904 US12106780B2 (en) 2020-08-26 2023-02-24 Video processing method and electronic device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010883703.9A CN114125258B (zh) 2020-08-26 2020-08-26 视频处理方法及电子设备

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202310404489.8A Division CN116437197A (zh) 2020-08-26 2020-08-26 视频处理方法及电子设备

Publications (2)

Publication Number Publication Date
CN114125258A true CN114125258A (zh) 2022-03-01
CN114125258B CN114125258B (zh) 2023-04-18

Family

ID=80354589

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202310404489.8A Pending CN116437197A (zh) 2020-08-26 2020-08-26 视频处理方法及电子设备
CN202010883703.9A Active CN114125258B (zh) 2020-08-26 2020-08-26 视频处理方法及电子设备

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202310404489.8A Pending CN116437197A (zh) 2020-08-26 2020-08-26 视频处理方法及电子设备

Country Status (4)

Country Link
US (1) US12106780B2 (zh)
EP (1) EP4195653A4 (zh)
CN (2) CN116437197A (zh)
WO (1) WO2022042387A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115022536A (zh) * 2022-05-24 2022-09-06 Oppo广东移动通信有限公司 视频拍摄方法、装置、电子设备及存储介质
CN115022537A (zh) * 2022-05-24 2022-09-06 Oppo广东移动通信有限公司 视频拍摄方法、装置、电子设备及存储介质
WO2023016032A1 (zh) * 2021-08-12 2023-02-16 北京荣耀终端有限公司 一种视频处理方法及电子设备

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115604540B (zh) * 2022-09-01 2023-11-14 荣耀终端有限公司 视频获取方法、电子设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008048374A (ja) * 2006-07-21 2008-02-28 Victor Co Of Japan Ltd ビデオカメラ装置
CN101567969A (zh) * 2009-05-21 2009-10-28 上海交通大学 基于麦克风阵列声音制导的智能视频导播方法
CN106060534A (zh) * 2016-06-03 2016-10-26 公安部第三研究所 一种音视频同步测试的系统及方法
CN107135413A (zh) * 2017-03-20 2017-09-05 福建天泉教育科技有限公司 一种音视频同步方法及系统
CN107404599A (zh) * 2017-07-17 2017-11-28 歌尔股份有限公司 音视频数据同步方法、装置及系统
US20180367839A1 (en) * 2017-06-16 2018-12-20 Oohms Ny Llc Method and system for synchronization of audio content for a remotely displayed video

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6985501B2 (en) * 2000-04-07 2006-01-10 Ntt Docomo, Inc. Device and method for reducing delay jitter in data transmission
US7295548B2 (en) * 2002-11-27 2007-11-13 Microsoft Corporation Method and system for disaggregating audio/visual components
US20070165837A1 (en) * 2005-12-30 2007-07-19 Microsoft Corporation Synchronizing Input Streams for Acoustic Echo Cancellation
US9467735B2 (en) * 2007-09-04 2016-10-11 Apple Inc. Synchronizing digital audio and analog video from a portable media device
US20090207277A1 (en) * 2008-02-20 2009-08-20 Kabushiki Kaisha Toshiba Video camera and time-lag correction method
JP2017103542A (ja) * 2015-11-30 2017-06-08 株式会社小野測器 同期装置、同期方法及び同期プログラム
EP3340614A1 (en) * 2016-12-21 2018-06-27 Thomson Licensing Method and device for synchronizing audio and video when recording using a zoom function
WO2019113374A1 (en) * 2017-12-06 2019-06-13 Invensense, Inc. System for fusing acoustic and inertial position determination
CN108287924A (zh) * 2018-02-28 2018-07-17 福建师范大学 一种可定位视频数据采集与组织检索方法
US11586413B2 (en) * 2018-10-05 2023-02-21 Google Llc Synchronous sounds for audio assistant on devices
US11259058B2 (en) * 2019-03-25 2022-02-22 Apple Inc. Use of rendered media to assess delays in media distribution systems
EP4167580A4 (en) * 2020-07-02 2023-11-29 Huawei Technologies Co., Ltd. AUDIO CONTROL METHOD, SYSTEM AND ELECTRONIC DEVICE
US11800177B1 (en) * 2022-06-29 2023-10-24 TogetherSound LLC Systems and methods for synchronizing remote media streams

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008048374A (ja) * 2006-07-21 2008-02-28 Victor Co Of Japan Ltd ビデオカメラ装置
CN101567969A (zh) * 2009-05-21 2009-10-28 上海交通大学 基于麦克风阵列声音制导的智能视频导播方法
CN106060534A (zh) * 2016-06-03 2016-10-26 公安部第三研究所 一种音视频同步测试的系统及方法
CN107135413A (zh) * 2017-03-20 2017-09-05 福建天泉教育科技有限公司 一种音视频同步方法及系统
US20180367839A1 (en) * 2017-06-16 2018-12-20 Oohms Ny Llc Method and system for synchronization of audio content for a remotely displayed video
CN107404599A (zh) * 2017-07-17 2017-11-28 歌尔股份有限公司 音视频数据同步方法、装置及系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023016032A1 (zh) * 2021-08-12 2023-02-16 北京荣耀终端有限公司 一种视频处理方法及电子设备
CN115022536A (zh) * 2022-05-24 2022-09-06 Oppo广东移动通信有限公司 视频拍摄方法、装置、电子设备及存储介质
CN115022537A (zh) * 2022-05-24 2022-09-06 Oppo广东移动通信有限公司 视频拍摄方法、装置、电子设备及存储介质
CN115022537B (zh) * 2022-05-24 2023-08-29 Oppo广东移动通信有限公司 视频拍摄方法、装置、电子设备及存储介质
CN115022536B (zh) * 2022-05-24 2023-10-03 Oppo广东移动通信有限公司 视频拍摄方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
US12106780B2 (en) 2024-10-01
US20230197115A1 (en) 2023-06-22
CN116437197A (zh) 2023-07-14
CN114125258B (zh) 2023-04-18
WO2022042387A1 (zh) 2022-03-03
EP4195653A1 (en) 2023-06-14
EP4195653A4 (en) 2024-01-03

Similar Documents

Publication Publication Date Title
CN114125258B (zh) 视频处理方法及电子设备
US20230116044A1 (en) Audio processing method and device
CN113572954B (zh) 一种视频录制方法、电子设备及介质
EP4224831A1 (en) Image processing method and electronic device
US12096134B2 (en) Big aperture blurring method based on dual cameras and TOF
US20230276014A1 (en) Photographing method and electronic device
US11750926B2 (en) Video image stabilization processing method and electronic device
CN116055857B (zh) 拍照方法及电子设备
CN108769738B (zh) 视频处理方法、装置、计算机设备和存储介质
US11870941B2 (en) Audio processing method and electronic device
CN112165575B (zh) 图像虚化处理方法及装置、存储介质和电子设备
CN112383664B (zh) 一种设备控制方法、第一终端设备、第二终端设备及计算机可读存储介质
CN115597706B (zh) 一种环境光的检测方法、电子设备及芯片系统
CN113810589A (zh) 电子设备及其视频拍摄方法和介质
CN114697732A (zh) 一种拍摄方法、系统及电子设备
CN113573119B (zh) 多媒体数据的时间戳生成方法及装置
EP4254927A1 (en) Photographing method and electronic device
CN111800581B (zh) 图像生成方法、图像生成装置、存储介质与电子设备
CN115904184A (zh) 数据处理方法和相关装置
CN113382162B (zh) 一种视频拍摄方法及电子设备
WO2024159950A1 (zh) 一种显示方法、装置、电子设备及存储介质
CN115037827B (zh) 一种驱动电压的调整方法、电子设备及存储介质
CN117082295B (zh) 图像流处理方法、设备及存储介质
JP2013097728A (ja) 電子機器およびプログラム
CN116600175B (zh) 丢帧预测方法和电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant