下面是 2023.11 月音视频面试题集锦的几条干货精选:
双缓冲机制主要目的是为了解决计算机图形学中的屏幕闪烁和画面流畅性问题。该机制通过在内存中创建两个缓冲区:一个用于绘制图像的后缓冲区,一个用于显示图像的前缓冲区,来避免因为输入输出速度不匹配造成的界面闪烁、卡顿等现象。这个问题是很老的问题了,目前的系统基本都已经支持双缓冲了。
双缓冲机制与的 eglCreateWindowSurface
、eglCreatePbuffferSurface
这两个方法没有直接的关系。这两个方法是为了实现当前屏幕渲染和离屏渲染的功能,eglCreateWindowSurface
是创建屏幕上的渲染区域来实现屏幕渲染,eglCreatePbuffferSurface
是创建屏幕外的渲染区域来实现离屏渲染。也就是说你创建 eglCreateWindowSurface
就自动支持双缓冲机制了。
minetype
,如果是 video/dolby-vision
则格式为 Dolby 视频;METADATA_KEY_COLOR_TRANSFER
,如果颜色转换函数是 HLG
则格式为 HLG 视频;mediaFormat
变化回调 onOutputFormatChanged
来判断,代码如下:public void onOutputFormatChanged(@NonNull MediaCodec mediaCodec, @NonNull MediaFormat mediaFormat) {
if (format.containsKey(MediaFormat.KEY_HDR10_PLUS_INFO)){
Log.d(TAG, "hdr10");
} else if (format.containsKey(MediaFormat.KEY_HDR_STATIC_INFO)){
Log.d(TAG, "hdr10+");
}
}
HEVC 包含大量不同的帧类型。这些类型都会在 NALU 头信息中标记便于我们识别帧类型。其中 OpenGOP 包含下列帧类型:
IRAP(Intra Random Access Pictures)
:随机访问帧。解码器可以从该帧开始解码。IRAP 包含三种帧类型:瞬时解码器刷新帧(IDR)、干净随机访问帧(CRA)、断开链路访问帧(BLA)。视频的解码过程始终要从 IRAP 帧开始。前导帧(Leading pictures)
:按输出顺序位于随机访问点图片之前,但在编码视频序列中在随机访问点图片之后进行编码。RADL(Random Access Decodable Leading pictures)
:按照编码顺序独立于随机访问点之前的图片的引导帧被称为随机访问可解码前导帧。RASL(Random Access Skipped Leading pictures)
:按照编码顺序使用随机访问点之前的图片进行预测的前导帧可能会被损坏。这些被称为随机访问跳过前导帧。尾随帧(Trailing pictures)
:在输出和解码顺序上均在 IRAP 和前导图片之后。TSA(Temporal Sublayer Access)
和 STSA(Stepwise Temporal Sublayer Access)
:标记解码器需要切换视频分辨率的帧,也是编码分层逻辑里面的分层转换点。HEVC Open GOP
开发 OpenGOP 视频需要注意的点,读者可以结合上面的示例来理解:
Ultra HDR 图片格式的原理是结合了标准 8-bit JPEG 基础图像与一个较低分辨率的、带有增益映射的 JPEG 图像以及用于 HDR 重建的元数据。首先,它通过加入一个标准 8-bit 的 JPEG 压缩图像,这个图像提供了基础的色彩和细节。然后,它关联了一个较低分辨率的 JPEG 图像,这个图像带有增益映射,可以提供额外的细节和动态范围。最后,它还包含了用于 HDR 重建的元数据,这些元数据可以用来创建 HDR 图像。
Ultra HDR 图片格式的核心优势在于其自适应的渲染方式。它可以根据硬件设备、显示能力的条件来选择最终的渲染方式。即使硬件设备或应用程序无法识别文件中的 HDR,Ultra HDR 照片格式仍然可以作为普通的 SDR JPEG 文件进行解析和显示,具备完全的向下兼容性。
Ultra HDR Image
Ultra HDR 图片解码过程如下:
hdrgm:Version="1.0"
来识别;Container:Directory
元素,定义文件容器中后续媒体文件的顺序和属性。容器中每个文件在 Container:Directory
中都有一个相应的媒体项,媒体项描述文件容器中的位置及每个串联文件的基本属性。紫色部分为 MPF 数据,储存在主图像中 App2 字段,主要包含了文件容器中 Primary 图和 GainMap 图的偏移及文件长度。HDR Gain Map Metadata
。这部分数据说明了如何使用 GainMap 图将主图像渲染到高动态范围。Ultra HDR 图片编码
Ultra HDR 编码主要有以下 5 个步骤: