前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >单细胞实战之inferCNV——入门到进阶(中级篇3)

单细胞实战之inferCNV——入门到进阶(中级篇3)

原创
作者头像
凑齐六个字吧
发布于 2025-03-30 08:08:42
发布于 2025-03-30 08:08:42
14800
代码可运行
举报
文章被收录于专栏:单细胞单细胞
运行总次数:0
代码可运行

该推文首发于公众号:单细胞天地

在前两讲中,我们已经完整介绍了CD4+ T细胞的提取及其亚群细分的流程。本讲将聚焦于单细胞分析领域中的重要工具——inferCNV,用于判断不同细胞亚群的CNV变化。尽管本讲内容在课程的连贯性上可能略显跳跃,但考虑到该工具在肿瘤研究中的重要性和以及其技术难度相对较低,我们仍在中级篇阶段对其进行回顾和学习。

本次内容涉及到的工程文件可通过网盘获得:初级篇2 链接: https://pan.baidu.com/s/1ETVEkJNCJSe9NU7_aLEPVA 提取码: znmb 。

上一讲CD4+T细胞细分后结果:中级篇2,链接: https://pan.baidu.com/s/1y-HHLXoXsJbgWKCdz26-gQ 提取码: yx93 。

此外,可以向“生信技能树”公众号发送关键词‘单细胞’,直接获取Seurat V5版本的完整代码。

既往推文

  1. 单细胞实战之亚细胞分群从T/NK至CD4+T细胞 (中级篇1):https://mp.weixin.qq.com/s/doO2Ici9BW1ncAIpwJNt4Q
  2. 单细胞实战之亚细胞分群之CD4+T细胞分群——从入门到进阶(中级篇2):https://mp.weixin.qq.com/s/zv4zzFPwN9c3tWeNDgvIAw

inferCNV分析简介

InferCNV用于分析肿瘤单细胞RNA测序数据,通过比较肿瘤细胞与参考"正常"细胞的基因表达强度,识别体细胞大规模染色体拷贝数变异的证据(如整条染色体或大片段染色体的扩增或缺失)。该方法可生成展示肿瘤基因组各染色体区域相对表达强度的热图,相较于正常细胞,肿瘤基因组中过度富集或缺失的区域通常会直观显现。

inferCNV分析的意义

对单细胞分析的时候会根据关键基因/标记进行细胞分群,基本上可以把大部分的细胞亚群给区分开来,但如果某些基因/标记广泛地存在于多种细胞亚群时,此时应进一步寻找其他的关键基因/标记进行区分,这种分析策略是“常规流程”。对于肿瘤细胞和正常细胞而言,我们常会遇到某些关键基因/标记在两者中均表达的情况(转录组水平),此时通过“常规流程”仍难以区分细胞的良恶性,因此换个角度来辅助区分良恶性细胞就显得尤为重要。

肿瘤细胞通常具有更多的CNV,而正常细胞则较为稳定,因此如果有一种工具能够可视化拷贝数变异的情况那么是不是就可以辅助鉴别良恶性细胞呢?基于这种情况inferCNV就应运而生了。

inferCNV分析结果
1、官方示例展示

图中的红色部分是References(Cells),也就是我们自行定义的对照(正常)细胞。这些对照细胞可以是相对于肿瘤细胞的正常细胞(癌与非癌),也可选用免疫细胞进行对照。蓝色部分是Observations(Cells),也就是我们想要重点分析的细胞。灰色部分是细胞的图注,上边的色块代表了对照细胞的情况,该图研究者纳入了Microglia/Macrophage 和 Oligodendrocytes (non-malignant) 作为对照细胞,恶性细胞作为观察细胞。

红色方框部分代表的是分层聚类树,其中第一列色柱代表的是所有观察组细胞的分层聚类,第二列色柱则是与所提供输入的观察组细胞分类相对应。

按照箭头看向对照和观察组细胞,在红色箭头处代表了malignant_MGH36细胞群,这群细胞相比于观察组(蓝色箭头)在chr1, 4, 19中存在更显著的染色体缺失,在chr11, 21中存在更显著的染色体扩增。同样的我们可以看其他的三群恶性细胞,也均存在不同区域的染色体拷贝数异常。

2、其他数据展示—正常/肿瘤样本

该结果显示1个正常样本作为对照组,10个肿瘤样本作为观察组。整体情况观察下来可以发现肿瘤组样本相比于对照组来说还是存在了很明显的染色体拷贝数异常。红色方框中的第二列色柱是代表了P10肿瘤样本的信息,中间还混了一小部分的P05患者的信息,从聚类树分层后的色柱来看,P10肿瘤样本还可以进一步的细分为多群。蓝色方框中的第二列色柱中存在很多肿瘤样本的信息,但从聚类树分层后的色柱来看,这些肿瘤样本信息应当分成同一群。

同样的数据,修改了cluster_by_groups的值之后聚类树的图形出现了变化。在不按照k_obs_groups分组之后,主要根据每个样本内部的情况进行分组,可以发现不同样本内部也存在着很大的异质性(红色方框)。

3、其他数据展示—细胞亚群

该结果显示前期分析得到了17个细胞亚群,其中第15个亚群根据关键基因/标记推测认为可能是正常细胞群,因此通过inferCNV进行辅助分析判断第15个亚群是否是正常细胞群,从结果来看确实也符合正常细胞亚群的猜测。而根据聚类树结果来看,k_obs_groups分组和细胞亚群分组一致。

不按照k_obs_groups分组之后,我们可以明显发现很多细胞亚群之间没有十分明显的界限,也就是说这个结果提示我们在后续聚类的时候可以把很多细胞亚群合并成同一群。

inferCNV分析流程
1.加载对象和R包
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rm(list = ls())
library(infercnv)
library(Seurat)
library(gplots)
library(ggplot2)
library(qs)
sce <- qread("./4-Corrective-data/sce.all.qs")

#检查一下自己导入进来的数据
DimPlot(sce,reduction = 'umap',
        label = TRUE,pt.size = 0.5) +NoLegend()

dir.create("11-infercnv")
setwd("./11-infercnv")
2.数据预处理

创建InferCNV对象前需要准备好三个文件:conut matrix;cell type annotations;gene ordering file

  1. conut matrix文件是行为基因,列为细胞的文件(图片来自示例数据)
  1. cell type annotations文件分为两列,左边为细胞名称,右边为已知的细胞类型,比如:细胞的生物学定义/数字编号的细胞簇名/等等(图片来自示例数据)
  1. gene ordering file文件提供了每个基因的染色体位置,格式为制表符分隔,没有列标题,提供基因名称、染色体和基因跨度(图片来自示例数据)

官方提供了基因排序文件:https://data.broadinstitute.org/Trinity/CTAT/cnv/,当然自行制作也十分迅速。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
table(Idents(sce))
table(sce@meta.data$seurat_clusters)
table(sce@meta.data$orig.ident)

# 提取部分细胞
sce@meta.data
sce <- sce[,sce$celltype %in% c("plasma","fibroblasts","epithelial/cancer cells")]

# 文件制作1:表达量矩阵
# 除了用GetAssayData函数其实也可以直接sce@assays$RNA@count即可
dat <- GetAssayData(sce,layer = 'counts',assay = 'RNA')
dat[1:4,1:4]

# 文件制作2:样本的描述
groupinfo <- data.frame(v1 = colnames(dat),v2 = sce@meta.data$celltype)
head(groupinfo)
#                                  v1                      v2
# 1 GSM5688706_WGC_AACACACGTGCTTCAA-1 epithelial/cancer cells
# 2 GSM5688706_WGC_AACACACTCCCGTTCA-1 epithelial/cancer cells
# 3 GSM5688706_WGC_AACACACTCTGCTAGA-1                  plasma
# 4 GSM5688706_WGC_AACCATGAGGCACAAC-1                  plasma
# 5 GSM5688706_WGC_AACCATGCAAAGCTCT-1 epithelial/cancer cells
# 6 GSM5688706_WGC_AACCCAAGTGCCGTAC-1                  plasma

# 文件制作3:基因在染色体中的坐标
library(AnnoProbe)
#annoGene 函数返回一个数据框,包含输入基因的详细注释信息。
#注释信息可能包括基因名称、染色体位置、基因描述等。
geneInfor <- annoGene(rownames(dat),"SYMBOL","human") #物种需要小心哦
# 使用逻辑条件来移除包含 chrM, chrX, 和 chrY 的行
geneInfor <- geneInfor[!geneInfor$chr %in% c("chrM", "chrX", "chrY"), ]
#提取chr后后面的数字并转化为num,从而按这个num排序
#sub函数用于把chr替换为空
geneInfor$chr_num <- as.numeric(sub("chr", "", geneInfor$chr))
colnames(geneInfor)

#with函数的作用是简化写法,可问gpt
geneInfor <- geneInfor[with(geneInfor,order(chr_num,start)),c(1,4:6)]
geneInfor <- geneInfor[!duplicated(geneInfor[,1]),]

length(unique(geneInfor[,1]))
head(geneInfor)
#        SYMBOL  chr  start    end
# 23 AP006222.2 chr1 266855 268655
# 51     FAM87B chr1 817371 819837
# 53  LINC00115 chr1 826206 827522
# 55     FAM41C chr1 868071 876903
# 62     SAMD11 chr1 923928 944581
# 63      NOC2L chr1 944203 959309
3.排序一下
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#保留行名在geneInfor第一列中存在的行。
dat <- dat[rownames(dat) %in% geneInfor[,1],] 
#match(x, table):match函数返回x中每个元素在table中的位置索引。
#获得位置后对dat进行重新排序使其跟geneInfor中的顺序一致
dat <- dat[match(geneInfor[,1],rownames(dat)),]
dim(dat)
head(groupinfo)
dat[1:4,1:4]
table(groupinfo$v2)
dim(groupinfo)
4.保存/输出文件
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#为了节约计算机资源,直接抽样
#如果真实项目请不要用抽样
#kp <- sample(1:nrow(groupinfo),500)
#groupinfo <- groupinfo[kp,]
#dat <- dat[,kp]

# 保存矩阵文件
#expFile:是一个变量,存储写入的文件的文件名或路径。在这里文件名是expFile.txt。
expFile <- 'expFile.txt' #定义输出文件名
colnames(dat) <- gsub("-", "_", colnames(dat))
write.table(dat, file = expFile, sep = '\t', quote = F)
# 保存细胞注释文件
groupFiles <- 'groupFiles.txt'
groupinfo$v1 <- gsub("-", "_", groupinfo$v1)
write.table(groupinfo,file = groupFiles, sep = '\t',
            quote = F, col.names = F, row.names = F)
# 保存基因排序文件
head(geneInfor)
geneFile <- 'geneFile.txt'
write.table(geneInfor, file = geneFile, sep = '\t',
            quote = F, col.names = F, row.names = F)
5.正式跑inferCNV

创建infercnv_obj对象:

  1. ref_group_names选择已知的非肿瘤细胞即可,我们这里选择了plasma细胞;
  2. 如果没有参考细胞,可以将 ref_group_names 设置为 NULL,在这种情况下,将使用所有细胞的平均信号来定义基线。

正式运行infercnv::run:

  1. cutoff截断值:截断值决定了决定了哪些基因将被纳入inferCNV分析,低于该阈值的基因(即细胞间平均表达计数不足的基因)将被排除。针对全长转录本测序技术(如基于细胞板实验的smart-seq平台),通常采用阈值1以适配其高检测灵敏度;而对于10x Genomics(及其他基于3’端测序的液滴检测技术,其基因计数矩阵数据稀疏性较高),经验表明阈值0.1普遍适用。
  2. out_dir:指定输出目录的名称。
  3. cluster_by_groups:参数设置为根据细胞注释文件中定义的患者类型对肿瘤细胞进行独立分群分析。
  4. denoise:需要设定为True。同时还可以增加使用noise_filter参数设定具体噪音阈值(比如0.1);或者增加使用sd_amplifier设定具体噪音阈值的标准差(比如1.5);或者在固定sd_amplifier值的前提下,增加参数noise_logistic=T通过sigmoidal函数调整去噪强度。(但其实这些都是花里胡哨的,大部分使用者的目的只要能有判断CNV是否存在差别即可)
  5. 第一列色柱根据分析时cluster_by_groups参数设置的不同(True/False)会对结果产生差异,可以自行调试
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#创建对象,请注意文件需要一一对应哦!
#ref_group_names 这里的细胞是正常对照,然后跟其他的细胞比较
infercnv_obj <- CreateInfercnvObject(raw_counts_matrix = expFile,
                                     annotations_file = groupFiles,
                                     delim = "\t",
                                     gene_order_file = geneFile,
                                     ref_group_names = c("plasma","fibroblasts") #这里用plasma和fibroblasts做参照
)

infercnv_obj <- infercnv::run(infercnv_obj,
                               cutoff =  0.1, #smart-seq选择1,10X选择0.1
                               out_dir = "infercnv_output", # dir is auto
                               # 是否根据细胞注释文件的分组
                               # 对肿瘤细胞进行分组
                               # 影响read.dendrogram, 如果有多个细胞类型,且设置为TRUE,
                               # 后续的read.dendrogram无法执行
                               cluster_by_groups =  TRUE, #是否根据细胞类型(由细胞注释文件中定义)
                               hclust_method = "ward.D2",# ward.D2 方法进行层次聚类
                               analysis_mode = "subclusters", # 默认是samples,推荐是subclusters
                               denoise = TRUE, # 去噪音
                               HMM = F,  ##特别耗时间,是否要去背景噪音
                               plot_steps = F, #不在每个步骤后生成图形。
                               leiden_resolution = "auto", #可以手动调参数
                               num_threads = 16 # 16线程工作,加快速度,一般电脑不建议哈
                               )

去噪音前后图。去之前也看得出肿瘤细胞相比于其他两种细胞来说有更多CNV改变

增加中值滤波,让视觉效果更明显

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
infercnv_obj_medianfiltered = infercnv::apply_median_filtering(infercnv_obj)

infercnv::plot_cnv(infercnv_obj_medianfiltered, 
                   out_dir='./example_output/',
                   output_filename='infercnv.median_filtered', 
                   x.range="auto",
                   x.center=1,
                   title = "infercnv", 
                   color_safe_pal = FALSE)
                   
setwd("..")                 
6、读取数据加载R包

接下来使用曾老师的方法去检查拷贝数变异的情况

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rm(list = ls())
options(stringsAsFactiors = F)
library(phylogram)
library(gridExtra)
library(grid)
require(dendextend)
require(ggthemes)
library(tidyverse)
library(Seurat)
library(infercnv)
library(miscTools)

sce <- qread("./4-Corrective-data/sce.all.qs")

dir.create("11-infercnv")
setwd("./11-infercnv")
7、把inferCNV中的run.final.infercnv_obje文件读取进来
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 提取想要的细胞
sce <- sce[,sce$celltype %in% c("plasma","fibroblasts","epithelial/cancer cells")]

# 提取infercnv_obj
infer_CNV_obj<-readRDS('./infercnv_output/run.final.infercnv_obj')
expr <- infer_CNV_obj@expr.data
expr[1:4,1:4]
data_cnv <- as.data.frame(expr)
dim(expr)
colnames(data_cnv)
rownames(data_cnv)

table(sce$orig.ident)
table(sce$seurat_clusters)
#记得要改一下sce中的列名
colnames(sce) <- gsub("-","_",colnames(sce))
meta <- sce@meta.data
8、计算CNV并绘图
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#要根据参数修改哦,这里的对照组有plasma和fibroblast
if(T){
  tmp1 = expr[,infer_CNV_obj@reference_grouped_cell_indices$plasma]
  tmp = tmp1
  tmp2 = expr[,infer_CNV_obj@reference_grouped_cell_indices$fibroblast]
  tmp= cbind(tmp1,tmp2)
  down=mean(rowMeans(tmp)) - 2 * mean( apply(tmp, 1, sd))
  up=mean(rowMeans(tmp)) + 2 * mean( apply(tmp, 1, sd))
  oneCopy=up-down
  oneCopy
  a1= down- 2*oneCopy
  a2= down- 1*oneCopy
  down;up
  a3= up +  1*oneCopy
  a4= up + 2*oneCopy 
  
  cnv_score_table<-infer_CNV_obj@expr.data
  cnv_score_table[1:4,1:4]
  cnv_score_mat <- as.matrix(cnv_score_table)
  
  # Scoring
  cnv_score_table[cnv_score_mat > 0 & cnv_score_mat < a2] <- "A" #complete loss. 2pts
  cnv_score_table[cnv_score_mat >= a2 & cnv_score_mat < down] <- "B" #loss of one copy. 1pts
  cnv_score_table[cnv_score_mat >= down & cnv_score_mat <  up ] <- "C" #Neutral. 0pts
  cnv_score_table[cnv_score_mat >= up  & cnv_score_mat <= a3] <- "D" #addition of one copy. 1pts
  cnv_score_table[cnv_score_mat > a3  & cnv_score_mat <= a4 ] <- "E" #addition of two copies. 2pts
  cnv_score_table[cnv_score_mat > a4] <- "F" #addition of more than two copies. 2pts
  
  # Check
  table(cnv_score_table[,1])
  # Replace with score 
  cnv_score_table_pts <- cnv_score_mat
  rm(cnv_score_mat)
  # 
  cnv_score_table_pts[cnv_score_table == "A"] <- 2
  cnv_score_table_pts[cnv_score_table == "B"] <- 1
  cnv_score_table_pts[cnv_score_table == "C"] <- 0
  cnv_score_table_pts[cnv_score_table == "D"] <- 1
  cnv_score_table_pts[cnv_score_table == "E"] <- 2
  cnv_score_table_pts[cnv_score_table == "F"] <- 2
   
  cnv_score_table_pts[1:4,1:4]
  str(as.data.frame(cnv_score_table_pts[1:4,1:4])) 
  cell_scores_CNV <- as.data.frame(colSums(cnv_score_table_pts))
  
  colnames(cell_scores_CNV) <- "cnv_score" 
}

#可视化
head(cell_scores_CNV) 
score=cell_scores_CNV
head(score)
meta$totalCNV = score[match(colnames(sce),
                            rownames(score)),1] 
p <- ggplot(meta, aes(x= celltype, 
                 y=totalCNV, 
                 fill=celltype)) +
            geom_boxplot();print(p) 
ggsave("totalCNV.pdf",plot = p, width = 9,height = 7,dpi = 300)

从CNV的结果确实能够看到epithelial/cancer cells与fibroblast和plasma细胞的差异。

本次分析完成了inferCNV工具的实践流程。inferCNV可以帮助我们从RNA水平推测细胞的CNV变化,并辅助开展多种分析工作。例如,它可以用于区分肿瘤细胞和正常细胞,识别基因组CNV,以及探索进化关系和克隆异质性。因此,inferCNV是单细胞分析中必须掌握的重要工具。

参考资料:
  1. Single-cell RNA-seq highlights intratumoral heterogeneity in primary glioblastoma. Science. 2014 Jun 20;344(6190):1396-401.
  2. inferCNV github:https://github.com/broadinstitute/infercnv https://github.com/broadinstitute/inferCNV/wiki
  3. 生信技能树:https://mp.weixin.qq.com/s/dcPYo9eR2CaPCr1-MbyC6w https://mp.weixin.qq.com/s/suH6jtGFfpaBluTKVCo_qA
  4. 单细胞天地:https://mp.weixin.qq.com/s/ByZFWLipJmyIu71W8TjLbA

致谢:感谢曾老师以及生信技能树团队全体成员。更多精彩内容可关注公众号:生信技能树,单细胞天地,生信菜鸟团等公众号。

:若对内容有疑惑或者有发现明确错误的朋友,请联系后台(欢迎交流)。更多相关内容可关注公众号:生信方舟

- END -

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
全面拥抱HDR时机已到?
文 / Kennet Eriksson, Björn Isakson and Kojo Mihic
LiveVideoStack
2019/07/01
5620
全面拥抱HDR时机已到?
Compressor Mac 视频格式转换
Compressor与 Final Cut Pro 和 Motion 高度集成,为视频转换增添了功能和灵活性。可让您快速自定输出设置,增强图像,并将您的影片打包用于在 iTunes Store 中出售。您还可轻松设置通过其他 Mac 电脑进行分布式编码,以获得更加快速的转换。
Mac推荐
2021/11/14
3.3K0
EBU超高清视频主观测试结果
原文标题:Voting with your eyes – subjective video test results
用户1324186
2019/05/08
1.2K0
EBU超高清视频主观测试结果
一文搞懂数字视频技术 [图文]
一个图像可以视作一个二维矩阵。如果将色彩考虑进来,我们可以做出推广:将这个图像视作一个三维矩阵——多出来的维度用于储存色彩信息。
lcyw
2024/03/04
5180
一文搞懂数字视频技术 [图文]
JPEG XS 图像编码新标准
原标题:JPEG White paper: JPEG XS, a new standard for visually lossless low-latency lightweight image coding system
用户1324186
2019/08/08
7.5K0
JPEG XS 图像编码新标准
HDR关键技术:HEVC/H.265编码方案
前文我们对HEVC的HDR编码优化技术做了介绍,侧重编码性能的提升。本章主要阐述HEVC中HDR/WCG相关的整体编码方案,包括不同应用场景下的HEVC扩展编码技术。
用户1324186
2018/08/08
7.4K0
HDR关键技术:HEVC/H.265编码方案
纵观OTT服务中的视频工程
原标题:Video Engineering for OTT – A 10K Foot View
用户1324186
2021/07/06
8960
纵观OTT服务中的视频工程
如何使用下一代编码技术提升流媒体体验
读者们好,今天我将使用本公司Bitmovin与Hulu合作的案例,探讨Multi-Codec Streaming, 3-pass和Per-Title encoding技术。
LiveVideoStack
2019/12/30
9960
如何使用下一代编码技术提升流媒体体验
高级视频压缩和渲染的高度沉浸式8K+应用程序
原标题:ADVANCED VIDEO COMPR ESSION AND RENDERING FOR HIGHLY IMMERSIVE 8K+ APPLICATIONS
用户1324186
2019/10/10
1.3K0
高级视频压缩和渲染的高度沉浸式8K+应用程序
关于高级视频压缩和应用的讨论
在信息时代,网络带宽作为一种新的资源已经开始与传统的化石能源资源相媲美。在我们的视听世界中,视频现在占据网络流量的 80%,根据思科公司的预测,到明年将达到 82%。视频压缩显然是最基本的工具,它不为公众所知,但实际上,它是我们信息时代的重要推动者之一。随着视频在我们日常生活中的使用越来越多,它的作用在可预见的未来只会呈指数级增长。所以我们今天谈论的技术不仅仅是社会角落里的一些深奥的东西,我们不仅现在在使用它们,而且人们在过去一年半的时间里一直在这种 COVID 大流行下使用它们处理日常事务,或与亲人交谈。
用户1324186
2022/01/20
7070
关于高级视频压缩和应用的讨论
音视频算法在淘宝中的应用
近年来,内容业务在行业蓬勃发展。淘宝也在积极进行内容化转型,本次LiveVideoStackCon 2021 上海站大会我们邀请到了阿里巴巴淘系技术高级算法专家——王立波(庄恕),回顾淘宝从图文到短视频直播的发展历程,介绍音视频算法在其中的应用和未来的投入方向包括编解码、视频处理、音频通讯与互动。
LiveVideoStack
2021/09/01
1.2K0
音视频算法在淘宝中的应用
HDR关键技术:HEVC/H.265编码优化
与传统标准动态范围(SDR)视频相比,高动态范围(HDR)视频由于比特深度的增加提供了更加丰富的亮区细节和暗区细节。最新的显示技术通过清晰地再现HDR视频内容使得为用户提供身临其境的观看体验成为可能。面对目前日益增长的HDR视频消费需求,研究现有的压缩工具或引入新的技术来高效压缩HDR视频变得十分迫切。本文将介绍有关MPEG及VCEG针对HDR视频压缩的研究进展。
用户1324186
2018/08/08
5.3K0
HDR关键技术:HEVC/H.265编码优化
NVIDIA NVENC编码器 OBS 指南
由 Gerardo Delgado Cabrera 发表于 2019年2月26日 | 直播指南串流
西里国际站
2023/08/23
5.8K0
NVIDIA NVENC编码器 OBS 指南
流媒体视频互联网直播/点播服务器AVC和H.264编解码器演进介绍
最近几年,在线视频行业发展十分迅速,无论是视频播放设备还是视频传输技术都在不断革新,我接触视频行业也比较久了,流视频其实就是关于编解码器,容器和协议的。我们EasyDSS视频直播点播服务器也需要将视频进行压缩转码,再进行终端分发。
EasyNVR
2020/05/25
5150
流媒体视频互联网直播/点播服务器AVC和H.264编解码器演进介绍
H.266 现状
H.266,即VVC,已于2020年6月完成标准化工作,其标准号为Rec. ITU-T H.266 and ISO/IEC 23090-3,标准将在2020年11月正式开始生效。H.266最显著的特点就是其相比起它前一代的标准,即ITU-T and ISO/IEC High Efficiency Video Coding (HEVC),标准号Rec. ITU-T H.265 and ISO/IEC 23008-2,有近50%的压缩性能的提升,而相比起更早的标准H.264/MPEG-4 AVC standard (Rec. ITU-T H.264 and ISO/IEC 14496-10) 更是有4倍的压缩性能提升,节省了更多的储存空间,网络带宽,同样的带宽,我们可以传输更多的视频,更多的频道,我们也可以传输更高分辨率的视频,更高帧率的视频,更高质量的视频,可以更好地应对出现由于以下技术带来的更高的对视频的要求,如UHD(ultra high definition), HDR(high dynamic range ),WCG(wide color gamut),HFR(high frame rate ),逐帧扫描的faster refresh rates,
轻舞飞扬SR
2021/06/17
1.3K0
衡量QoE和视频质量的最新ITU-T标准
本文来自Streaming Learning Center的博客,作者是H.264,H.265和VP9编码实时和按需制作的领先专家Jan Ozer,本文主题是“衡量QoE和视频质量的最新ITU-T标准”。
用户1324186
2020/08/31
3.1K0
衡量QoE和视频质量的最新ITU-T标准
【视频编码】 Content Aware ABR技术(七)
在本系列前面的帖子中,我们连续梳理了Netflix、YouTube、Beamr、EuclidIQ、Bitmovin及Harmonic在CAE(Content Aware Encoding) for A
用户1324186
2018/03/05
1.1K0
【视频编码】 Content Aware ABR技术(七)
HEVC支持苹果HLS的几个关键问题
2017年的苹果WWDC大会上,苹果宣布HEVC支持HLS,涉及了iOS、MacOS和tvOS等系统终端。但任何升级改进都是一个过程,这里整理了开发者最关心的问题。
LiveVideoStack
2021/09/02
1.1K0
HEVC支持苹果HLS的几个关键问题
视频编码复杂度持续增加,云端硬编码方案优势凸显
过去十年,基于H.264/AVC的视频编解码器一直在流媒体应用领域占主导地位,但随着Apple在iOS 11中采用H.265/HEVC以及Google在Android上力推VP9,形势悄然发生变化。明年Open Media联盟将会发布性能更高的AV1视频编解码器。视频内容提供商不久就要决定除了H.264之外是否需要进一步支持H.265和VP9,带来的结果就是视频编解码器市场将会变得支离破碎。 A. 视频编码复杂度增加: 随着视频编解码器市场的风云变幻以及消费者对更高质量视频的需
用户1324186
2018/03/05
2.1K0
视频编码复杂度持续增加,云端硬编码方案优势凸显
航拍 HDR 视频的 VVC 和 AV1 编码
视频产业现在处于一个十字路口,巨大的视频服务行业每年价值约 2000 亿美元。视频占互联网所有流量的 80%,这个比例还在增长。而在这 80% 的流量中,80% 是由 H.264 比特流组成的 -- 这是当今主流的视频编解码器。但 H.264 是在 2003 年实现标准化的,整整 18 年了,现在时机已经成熟,需要一个更新、更强大的编解码器来取代它。
用户1324186
2021/11/15
2.2K0
推荐阅读
相关推荐
全面拥抱HDR时机已到?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文