视频处理中各个分辨率/数字电视系统显示格式 的介绍(QCIF,CIF,4CIF,D1,720P,1080I,1080P等)

从本科到现在,搞了N久的视频处理,但是没有详细整理一下各个分辨率的介绍,今天整理一下贴在这里,可能会有疏漏,到时再补充。


     CIF(通用影像传输格式, Common Intermediate Format):通用影像传输视频会议(video conference)中常使用的影像传输格式,分辨率有352 x 288 画素,影像传输可达每秒30 frame,符合ITU H.261视频会议资料传输协定。


QCIFQuarter common intermediate format):即四分之一CIF,分辨率为176X144可以简单理解为分辨率上看水平和垂直像素均为一半。

  HALF D1分辨率为704×288

D
int HttpcaptureBase64(unsigned short JPEG_size, unsigned short JPEG_quality, char* base64_output) { int quality; int mode = 0; UINT32 retVal; int i, dataLen, chan = 1; int imageHandle = -1; char *pJpegData = NULL; int nJpegSize; char respXml[256] = {0}; int respBufLen = 0; char serNo[48] = {0}; // int encoded_length; // char base64_output[100]={0}; mkExternSN(serNo); retVal = SAMPLE_COMM_VENC_SnapProcess(chan); if(retVal != OK) { printf(" sanp process failed!\n"); return -1; } mode = getValueFromIndex(&net_jpegSize, JPEG_size); quality = getValueFromIndex(&net_jpegQuality, JPEG_quality); /*小于等于4CIF分辨率按照原来的方式处理;大于4CIF分辨率,抓图时的编码分辨率与JPEG抓图的分辨率保持一致*/ COMPRESSION *pCompression = &(pDevCfgParam->videoIn[MAP_CHANIDX(chan)].compressionPara); //printf("%x\n",GET_RESOLUTION(pCompression->streamAttr)); UINT16 videosize = GET_RESOLUTION(pCompression->streamAttr); switch(videosize) { case RESOLUTION_4CIF: mode = JPEG_MODE_D1; break; case RESOLUTION_CIF: mode = JPEG_MODE_CIF; break; case RESOLUTION_QCIF: mode = JPEG_MODE_QCIF; break; case RESOLUTION_UXGA: mode = JPEG_MODE_UXGA; break; case RESOLUTION_SVGA: mode = JPEG_MODE_SVGA; break; case RESOLUTION_HD720p: mode = JPEG_MODE_HD720p; break; case RESOLUTION_XVGA: mode = JPEG_MODE_XVGA; break; case RESOLUTION_HD900p: mode = JPEG_MODE_HD900p; break; case RESOLUTION_1080I50: case RESOLUTION_1080P: mode = JPEG_MODE_1080I; break; case RESOLUTION_VGA: mode = JPEG_MODE_VGA; break; default: mode = JPEG_MODE_NO_SCALE; break; } if ((imageHandle = image_new(chan,quality,mode, NULL, 0, FALSE)) < 0){ PRT_ERR(("image_new failed, chan = %d, mode = %d, quality = %d\n", chan, mode, quality)); return -2; } if (image_getData(imageHandle, &pJpegData, &nJpegSize, NULL, 0, NULL) != OK){ PRT_ERR(("image_getData failed, %d\n", chan)); image_delete(imageHandle); return -2; } // 计算 Base64 编码后的长度 int encoded_length = ((nJpegSize + 2) / 3) * 4 + 1; base64_output = (char *)malloc(nJpegSize); if (base64_output == NULL) { perror("Failed to allocate memory"); free(base64_output); return 1; } printf("nJpegSize %d\n", nJpegSize); // 进行 Base64 编码 int actual_encoded_length = base64_encode(pJpegData, nJpegSize, base64_output, encoded_length); if (actual_encoded_length < 0) { PRT_ERR(("Base64 encoding failed\n")); image_delete(imageHandle); return -5; } printf("nJpegSize %d, encoded_length %d\n", nJpegSize, encoded_length); // 输出 Base64 编码后的字符串 printf("Base64 encoded: %s\n", base64_output); image_delete(imageHandle); free(base64_output); return actual_encoded_length; }
最新发布
09-13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值