字节跳动-多媒体算法-提前批offer
一、视频架构—实习一面
字节一面大概1个小时左右,面试体验很好,效率很高,面试官很会照顾应届生。
- 开场环节
Q1:自我介绍(1分钟左右)
Q2:项目经历介绍(言简意赅) - 提问环节
Q1:手撕矩阵相乘。
A1:初场预热吧,程序没问题,边界条件考虑的不全面。
Q2、FFmpeg熟悉程度?
A2:简单介绍了FFmpeg常用的库以及相关的命令。
Q3、了解CUDA吗?
A3:线程模型和内存模型。
Q4、研究过h264,h265和h266吗?写过解码器吗?
A4:主要研究h265。
Q5、用过机器学习吗?用过Python吗?写过shell脚本吗?
A5:做过情绪识别,用python写过后台系统和识别程序。
Q6、了解Linux吗?
A6:基于Linux做过SLAM相关的项目。 - 互动环节
Q1、项目组主要做哪方面业务?
Q2、实习生能够接触的多大的业务量?
Q3、组内视频架构是否基于开源项目,基于什么开源?
二、视频架构—实习二面
- 开场环节
Q1:自我介绍(1分钟左右)
Q2:项目经历介绍(言简意赅) - 提问环节
Q1:重点聊了全景直播系统的项目,面试官很感兴趣。
A1:背景,主要贡献以及成果。
Q2:知道CUDA Stream吗?
A2:CUDA Stream没了解过,然后说了CUDA程序的原理、线程模型和内存模型。
Q3:进程和线程的关系?线程的通信方式?
A3:进程分配独立的系统资源,线程共享进程的资源。互斥锁、信号量、共享内存、事件等等。
Q4:单核CPU中的多线程是否需要线程锁?
A4:需要,CPU中线程是以时隙为单位交替执行的。
Q5:播放器的原理。
A5:以MP4为例,分为音频流和视频流,重点介绍了视频流的数据结构,NALU,RBPS,SODB。先获取参数集信息初始化解码器,再解析视频数据。
Q6:I帧和IDR帧的区别?
A6:I帧是指只包含帧内编码的图像;IDR帧首先是I帧,其次其后置图像可以独立解码。
Q7:FFmpeg的使用。PTS和DTS的区别?音视频同步的原理?
A7:PTS和DTS的含义以及B帧。
Q8:HEVC中的并行加速方法。
A8:Tile并行处理工具集和波前并行处理(WWP)。
Q9:感知编码项目。
A9:速率控制方式CBR、VBR。
Q10:手撕编程题:和大于N的最小连续数组?
A10:动态规划的解决思路。
三、视频架构—实习三面
- 开场环节
Q1:自我介绍(1分钟左右)
Q2:项目经历介绍(言简意赅) - 提问环节
Q1:编程题:输出数组中位数,第k个元素为前k个数的中位数。
A1:数据结构大顶堆和小顶堆。
四、视频架构—提前批直通车终面
- 开场环节
Q1:自我介绍(1分钟左右)
Q2:项目经历介绍(言简意赅) - 互动环节
Q1:闲聊。