亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 視頻編解碼器view.cpp

?? h.263壓縮標(biāo)準(zhǔn)的源代碼。 這些代碼都是經(jīng)過試驗(yàn)的
?? CPP
?? 第 1 頁 / 共 2 頁
字號(hào):
	  prev_recon=curr_recon;
      curr_image = FillImage(m_pImageData);
	  pic->TR+=(((frameskip+(pic->PB?98:0))*orig_frameskip)%256);
	  if(frameskip+(pic->PB?98:0)>256)
		MessageBox("Warning:frameskip>256");

     streamfile.SeekToEnd();
    if(((frame_no-1)%Pbetween)==0)
	 {
	   pic->picture_coding_type =0; // PCT_INTRA;
	   pic->QUANT=QPI;
       curr_recon = CodeOneIntra(curr_image, QPI, bits, pic);
	   AddBitsPicture(bits);
	   memcpy(intra_bits,bits,sizeof(Bits));

	 }
    else
	{ 
	  CodeOneInter(prev_image,curr_image,prev_recon,curr_recon,pic->QUANT,frameskip,bits,pic);
	  AddBitsPicture(bits); 
	}
   bits->header += alignbits (); //* pictures shall be byte aligned *

 
   if(ifPsnr)
   {	SeekPsnr(curr_image,curr_recon,352,288,psnrs);
	kk.Format("第%d幀的lum峰值信噪比為%6.4f\n",frame_no,psnrs[0]);
	m_Spsnr=kk;
	kk.Format("第%d幀的Cb峰值信噪比為%6.4f\n",frame_no,psnrs[1]);
	m_Spsnr+=kk;
	kk.Format("第%d幀的Cr峰值信噪比為%6.4f\n",frame_no,psnrs[2]);
	m_Spsnr+=kk;
	psnrfile.SeekToEnd();
	psnrfile.Write(m_Spsnr,m_Spsnr.GetLength());
   }
//率控制

   AddBits(total_bits, bits);
#ifndef OFFLINE_RATE_CONTROL
    if (pic->bit_rate != 0 && pic->PB)
      CommBacklog -= (int)
      ( DelayBetweenFramesInSeconds*pic->bit_rate ) * pdist;

    if (pic->bit_rate != 0) {
      UpdateRateControl(bits->total);

      CommBacklog += bits->total;
      frameskip = 1;
      CommBacklog -= (int)
        (frameskip * DelayBetweenFramesInSeconds *pic->bit_rate);

      while ( (int)(DelayBetweenFramesInSeconds*pic->bit_rate) <= CommBacklog)
      {
        CommBacklog -= (int) ( DelayBetweenFramesInSeconds * pic->bit_rate );
        frameskip += 1;
      }
    }
#else
    //* Aim for the targetrate with a once per frame rate control scheme *
    if (targetrate != 0)
      if (frame_no - start > (MaxFrame - start) * start_rate_control/100.0)

        pic->QUANT = FrameUpdateQP(total_bits->total + intra_bits->total,
           bits->total / (pic->PB?2:1),
           (MaxFrame-frame_no) / chosen_frameskip ,
           pic->QUANT, targetrate, seconds);
   frameskip = chosen_frameskip;
#endif
	  CString kkk;
	  kkk.Format("編碼率為%d,%d幀的total_bits->total 為%d,intra_bits->total 為 %d, bits->total 為%d,new quant is %d.",
		  targetrate,frame_no,total_bits->total,intra_bits->total,bits->total,pic->QUANT);
	  if(ifPsnr)
	  {
		  psnrfile.SeekToEnd();
	      psnrfile.Write(kkk,kkk.GetLength());
	  }

	//顯示進(jìn)度信息
	CString str;
	str.Format("%d%% complete", frame_no*100/MaxFrame);
	bar.SetText(str);
	bar.StepIt();
    PeekAndPump(); //調(diào)用函數(shù)實(shí)現(xiàn)消息的轉(zhuǎn)發(fā)
   }//end for frame_no
	
//  pDoc->SetModifiedFlag(TRUE);
  file.Close();
  if(ifPsnr)
  psnrfile.Close();
  streamfile.Close();
  delete prev_image;
  delete prev_recon;
  delete curr_image;
  curr_recon=NULL;
//  delete curr_recon;
  free(bits);
  free(pic);
  

    long hours,minutes,second;//計(jì)算所用的時(shí)間
    ElapsedTime = CTime::GetCurrentTime() - StartTime;
	bFlag=0;    
	hours = ElapsedTime.GetTotalHours();
    minutes = ElapsedTime.GetTotalMinutes();
    second = ElapsedTime.GetTotalSeconds();
    second = second + 60*minutes + 3600*hours;
    csTimeElapse.Format("編碼%d幀視頻序列,耗時(shí):%d秒!",frame_no-1,second);
    MessageBox(csTimeElapse);
	pDoc->UpdateAllViews(NULL);
	}
	else
    MessageBox("No file is saved.","系統(tǒng)提示",MB_OK);
//	delete m_pImageData;

}

void CMyView::CodeBmps()
{
   //初始化
	CMyDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	CProgressBar bar(_T("Encode Progress"), 50, MaxFrame);

    m_pImageData=new unsigned char[352*288+352*288/2];
	m_pImageData = OpenImageFile(m_szFilePathName, &m_orgWidth, &m_orgHeight, m_Type);

    PictImage *prev_image = NULL;
    PictImage *curr_image = NULL;
    PictImage *curr_recon = NULL;
    PictImage *prev_recon = NULL;

	int frame_no,first_frameskip=0;  
    int start=2;//從第1幀到第MaxFrame幀
    int orig_frameskip=1;//輸入圖像原始偏移
    int frameskip=1;//非發(fā)送幀

	long_vectors =0;//幀間編碼的參數(shù)
	mv_outside_frame=0;

	Pict *pic = (Pict *)malloc(sizeof(Pict));
	Bits *bits = (Bits *)malloc(sizeof(Bits));
	pic->BQUANT = DEF_BQUANT;
    pic->seek_dist = DEF_SEEK_DIST;
    pic->use_gobsync = DEF_INSERT_SYNC;//=0
    pic->PB = 0;
    pic->TR = 0;
    pic->QP_mean = (float)0.0;
    pic->unrestricted_mv_mode = 0;
	pic->picture_coding_type =0; // PCT_INTRA;
	if((m_orgHeight==288)&&(m_orgWidth==352))
       pic->source_format = SF_CIF;
	switch (pic->source_format) {
    case (SF_SQCIF):
      fprintf(stdout, "Encoding format: SQCIF (128x96)\n");
      pels = 128;
      lines = 96;
      break;
    case (SF_QCIF):
      fprintf(stdout, "Encoding format: QCIF (176x144)\n");
      pels = 176;
      lines = 144;
      break;
    case (SF_CIF):
      fprintf(stdout, "Encoding format: CIF (352x288)\n");
      pels = 352;
      lines = 288;
      break;
    case (SF_4CIF):
      fprintf(stdout, "Encoding format: 4CIF (704x576)\n");
      pels = 704;
      lines = 576;
      break;
    case (SF_16CIF):
      fprintf(stdout, "Encoding format: 16CIF (1408x1152)\n");
      pels = 1408;
      lines = 1152;
      break;
    default:
      fprintf(stderr,"Illegal coding format\n");
      exit(-1);
	}
    cpels = pels/2;
	curr_recon = InitImage(pels*lines);

	//建立輸出文件
	CString outfilename=m_szFileName.Left(m_szFileName.GetLength()-4);
	CFileDialog dlg(FALSE,".263",outfilename,OFN_OVERWRITEPROMPT,"263 Files(*.263)|*.263|",NULL);
	if (dlg.DoModal()==IDOK)
	{  
		bFlag=1;
		pDoc->UpdateAllViews(NULL);

        CString tempname;
		tempname=dlg.GetPathName();
		outfilename=tempname.Left(tempname.GetLength()-4);

	    if((streamfile.Open(tempname,CFile::modeWrite|CFile::modeCreate))==FALSE)
			AfxMessageBox("Can't create file!"); 
		streamfile.SeekToBegin();
     	initbits ();
		
		CTime StartTime=CTime::GetCurrentTime();
        CTimeSpan ElapsedTime;

	pic->QUANT=QPI;
	curr_image = FillImage(m_pImageData);
	curr_recon = CodeOneIntra(curr_image, QPI, bits, pic);
	bits->header += alignbits (); /* pictures shall be byte aligned */

	CString kk,m_Spsnr;
   if(ifPsnr)
   {
	if(psnrfile.Open(outfilename+".doc",CFile::modeWrite|CFile::modeCreate)==FALSE)
    MessageBox("Cannot create the output psnr file!", "Error",MB_ICONERROR | MB_OK);
	SeekPsnr(curr_image,curr_recon,352,288,psnrs);
	frame_no=1;
	kk.Format("第%d幀的lum峰值信噪比為%6.4f\n",frame_no,psnrs[0]);
	m_Spsnr=kk;
	kk.Format("第%d幀的Cb峰值信噪比為%6.4f\n",frame_no,psnrs[1]);
	m_Spsnr+=kk;
	kk.Format("第%d幀的Cr峰值信噪比為%6.4f\n",frame_no,psnrs[2]);
	m_Spsnr+=kk;
	MessageBox(m_Spsnr);
	psnrfile.SeekToBegin();
	psnrfile.Write(m_Spsnr,m_Spsnr.GetLength());
   }

	 //第二幀 


    for(frame_no=start+first_frameskip;frame_no<=MaxFrame;frame_no+=frameskip)
	{
  	  m_szFilePathName = GetNextFileName(m_szFilePathName,1);
   	  m_pImageData = OpenImageFile(m_szFilePathName, &m_orgWidth, &m_orgHeight, m_Type);
	  if(m_pImageData==NULL)
		  return;
	   
  	  pic->picture_coding_type =1; // PCT_INTER;
	  pic->QUANT=QP;
      prev_image=curr_image;
	  prev_recon=curr_recon;
      curr_image = FillImage(m_pImageData);
	  pic->TR+=(((frameskip+(pic->PB?98:0))*orig_frameskip)%256);
	  if(frameskip+(pic->PB?98:0)>256)
		MessageBox("Warning:frameskip>256");

     streamfile.SeekToEnd();
     if(((frame_no-1)%Pbetween)==0)
	 {
	   pic->picture_coding_type =0; // PCT_INTRA;
	   pic->QUANT=QPI;
       curr_recon = CodeOneIntra(curr_image, QPI, bits, pic);
	 }
    else
    CodeOneInter(prev_image,curr_image,prev_recon,curr_recon,QP,frameskip,bits,pic);
    bits->header += alignbits (); /* pictures shall be byte aligned */
	
   if(ifPsnr)
   {	
	SeekPsnr(curr_image,curr_recon,352,288,psnrs);
	kk.Format("第%d幀的lum峰值信噪比為%6.4f\n",frame_no,psnrs[0]);
	m_Spsnr=kk;
	kk.Format("第%d幀的Cb峰值信噪比為%6.4f\n",frame_no,psnrs[1]);
	m_Spsnr+=kk;
	kk.Format("第%d幀的Cr峰值信噪比為%6.4f\n",frame_no,psnrs[2]);
	m_Spsnr+=kk;
	psnrfile.SeekToEnd();
	psnrfile.Write(m_Spsnr,m_Spsnr.GetLength());
   }

	//顯示進(jìn)度信息
	CString str;
	str.Format("%d%% complete", frame_no*100/MaxFrame);
	bar.SetText(str);
	bar.StepIt();
    PeekAndPump(); //調(diào)用函數(shù)實(shí)現(xiàn)消息的轉(zhuǎn)發(fā)

   }//end for frame_no

//  pDoc->SetModifiedFlag(TRUE);
  if(ifPsnr)
  psnrfile.Close();

  streamfile.Close();
  delete prev_image;
  delete prev_recon;
  delete curr_image;
  curr_recon=NULL;
//  delete curr_recon;
  free(bits);
  free(pic);

    long hours,minutes,second;//計(jì)算所用的時(shí)間
    ElapsedTime = CTime::GetCurrentTime() - StartTime;
	bFlag=0;
    hours = ElapsedTime.GetTotalHours();
    minutes = ElapsedTime.GetTotalMinutes();
    second = ElapsedTime.GetTotalSeconds();
    second = second + 60*minutes + 3600*hours;

    csTimeElapse.Format("編碼%d幀圖像序列,耗時(shí):%d秒!",frame_no-1,second);
    MessageBox(csTimeElapse);
	pDoc->UpdateAllViews(NULL);

	}
	else
    MessageBox("No file is saved.","系統(tǒng)提示",MB_OK);
	delete m_pImageData;
}

BOOL CMyView::PeekAndPump()
{

	static MSG msg;
	while (::PeekMessage(&msg,NULL,0,0,PM_NOREMOVE)) 
	{
		if (!AfxGetApp()->PumpMessage()) 
		{
			::PostQuitMessage(0);
			return FALSE;
		}	
	}
	return TRUE;

}

void CMyView::OnDecode() 
{	
	CMyDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	CDC *pDC=GetDC();

	CFileDialog decfile(TRUE,NULL,NULL,OFN_HIDEREADONLY,"263 Files(*.263)|*.263|");
	decfile.m_ofn.lpstrTitle="打開263文件";
	if(decfile.DoModal()==IDOK)
	   DecfileName=decfile.GetPathName();//獲取263文件路徑
	bFlag=2;	
	pDoc->UpdateAllViews(NULL);	
}

void SeekPsnr(PictImage *curr, PictImage *recon, int width,int height, double psnr[3])
{
	int i;
	double MSE1=0;
	double MSE2=0;

    for(i=0;i<width*height;i++)
	    MSE1+=((double)recon->lum[i]-(double)curr->lum[i])
			    *((double)recon->lum[i]-(double)curr->lum[i]);
	MSE1/=(width*height);
	if(MSE1==0)
		psnr[0]=0;
	else
		psnr[0]=10*log10(255*255/MSE1);

	MSE1=0;
	for(i=0;i<((width*height)>>2);i++)
	{
		MSE1+=((double)recon->Cb[i]-(double)curr->Cb[i])
			    *((double)recon->Cb[i]-(double)curr->Cb[i]);
		MSE2+=((double)recon->Cr[i]-(double)curr->Cr[i])
			    *((double)recon->Cr[i]-(double)curr->Cr[i]);
	}  
	MSE1/=(width*height)>>2;
	MSE2/=(width*height)>>2;
	if(MSE1==0)
		psnr[1]=0;
	else
		psnr[1]=10*log10(255*255/MSE1);
	if(MSE2==0)
		psnr[2]=0;
	else
		psnr[2]=10*log10(255*255/MSE2);

}



void CMyView::OnFileOpen() 
{
	CDC* pDC;
    pDC=GetDC();

	CFile look_result;
	CString resultshow="";
	CString kk;
   	CFileDialog lookresult(TRUE,NULL,NULL,OFN_HIDEREADONLY,"文本 Files(*.txt;*.doc)|*.txt;*.doc|");
	lookresult.m_ofn.lpstrTitle="打開編碼結(jié)果文件";
	lookresult.m_ofn.lpstrInitialDir="F:\\standard_pictures\\MISSUSA_raw";
	if(lookresult.DoModal()==IDOK)
	{
	    resultshow=lookresult.GetPathName();
	    if (look_result.Open(resultshow,CFile::modeRead)==NULL)
		{
	    AfxMessageBox("Can not open the result file!");
	    return;
		}
	    look_result.SeekToBegin(); 
	}
	
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本视频中文字幕一区二区三区| 美腿丝袜亚洲三区| 日韩欧美成人一区| 91在线一区二区| 久久国产精品第一页| 亚洲欧美日韩国产成人精品影院| 欧美不卡视频一区| 国产精品久久久久久久午夜片 | 高清不卡一区二区在线| 亚洲国产乱码最新视频 | 日韩欧美激情在线| 日本丰满少妇一区二区三区| 国产中文字幕一区| 欧美aa在线视频| 亚洲国产成人高清精品| 欧美国产成人精品| 久久久91精品国产一区二区精品| 欧美巨大另类极品videosbest| 91视频一区二区| 不卡视频在线看| 国产福利一区二区| 狠狠色综合播放一区二区| 视频一区二区三区中文字幕| 亚洲精品一二三四区| 国产三级一区二区| 亚洲精品在线一区二区| 欧美一级理论性理论a| 欧洲精品一区二区| 色综合天天综合色综合av| 国产不卡视频在线播放| 免费成人结看片| 日韩精品一级二级| 午夜久久电影网| 午夜久久久影院| 亚洲18色成人| 午夜精品久久久久久久| 亚洲综合精品自拍| 亚洲自拍另类综合| 亚洲午夜免费视频| 色av成人天堂桃色av| 国产精品中文字幕日韩精品| 国产真实乱对白精彩久久| 久久激情五月婷婷| 精品制服美女丁香| 国产一区二区在线观看视频| 麻豆精品一二三| 九九**精品视频免费播放| 久久精品国内一区二区三区 | 99这里都是精品| 波多野结衣91| 色婷婷精品久久二区二区蜜臂av| 99综合影院在线| 在线精品视频小说1| 欧美午夜片在线观看| 欧美视频一区在线| 91精品国产入口在线| 精品国产一区二区亚洲人成毛片| 久久久99精品免费观看| 国产精品久久久久影院老司| 亚洲日本va午夜在线电影| 亚洲精品成人a在线观看| 亚洲777理论| 久久 天天综合| 成人性生交大合| 91一区二区三区在线播放| 欧美伊人精品成人久久综合97| 欧美美女bb生活片| 亚洲精品一区二区三区香蕉| 国产日本一区二区| 亚洲美女视频在线| 日本中文字幕不卡| 国产69精品久久777的优势| 91视频91自| 欧美一级xxx| 国产精品污网站| 亚洲不卡av一区二区三区| 老司机一区二区| 色香蕉久久蜜桃| 日韩免费观看2025年上映的电影| 中文字幕欧美区| 丝袜亚洲另类丝袜在线| 国产裸体歌舞团一区二区| 日本韩国一区二区三区视频| 欧美一级高清片| 中文字幕在线播放不卡一区| 婷婷中文字幕综合| 国产丶欧美丶日本不卡视频| 欧美伊人久久久久久午夜久久久久| 精品久久久久久无| 一区二区三区加勒比av| 国产综合色视频| 欧美日韩欧美一区二区| 久久女同互慰一区二区三区| 一区二区不卡在线播放| 韩日av一区二区| 欧美私模裸体表演在线观看| 久久网站热最新地址| 亚洲一区自拍偷拍| 国产大陆精品国产| 欧美精品色综合| 亚洲欧美日韩系列| 成人丝袜高跟foot| 日韩一级二级三级精品视频| 亚洲欧洲制服丝袜| 国产永久精品大片wwwapp| 欧美日韩一二三| 亚洲视频电影在线| 国产成人免费视频网站| 欧美一区二区三区在线观看| 亚洲激情在线播放| 成人福利视频网站| 久久综合久色欧美综合狠狠| 午夜精品久久久久久不卡8050| 91色视频在线| 中文欧美字幕免费| 国精产品一区一区三区mba视频| 欧美一区二区视频在线观看2022| 亚洲精品免费在线播放| 国产久卡久卡久卡久卡视频精品| 91精品国产综合久久精品app | 色婷婷激情一区二区三区| 国产三级精品三级| 国产在线播放一区| 日韩欧美aaaaaa| 免费在线观看一区二区三区| 欧美在线观看你懂的| 亚洲日本va午夜在线电影| caoporm超碰国产精品| 国产精品午夜春色av| 粉嫩av一区二区三区| 久久久久久久久久电影| 狂野欧美性猛交blacked| 制服丝袜激情欧洲亚洲| 香蕉久久夜色精品国产使用方法| 欧洲生活片亚洲生活在线观看| 亚洲日本在线a| 欧美中文字幕一区| 伊人婷婷欧美激情| 91成人看片片| 亚洲五码中文字幕| 欧美另类z0zxhd电影| 亚洲第一二三四区| 欧美一区二区三区白人| 免费观看91视频大全| 精品国产髙清在线看国产毛片| 黑人精品欧美一区二区蜜桃| 久久精品一级爱片| 成人久久18免费网站麻豆| 国产精品国产三级国产aⅴ无密码| 91在线观看视频| 亚洲国产婷婷综合在线精品| 欧美另类一区二区三区| 美日韩一区二区三区| 久久无码av三级| 99久久99久久精品国产片果冻| 有码一区二区三区| 欧美精品一卡二卡| 乱中年女人伦av一区二区| 精品国产91乱码一区二区三区| 国产凹凸在线观看一区二区| 国产精品毛片久久久久久久| 色哟哟国产精品| 免费人成精品欧美精品 | 亚洲国产三级在线| 欧美mv和日韩mv的网站| 成人免费高清视频在线观看| 亚洲精品成人精品456| 91精品国产91热久久久做人人| 精品一区二区久久久| 国产欧美精品一区二区色综合 | av中文字幕亚洲| 亚洲bdsm女犯bdsm网站| 久久久久青草大香线综合精品| 成人黄色av电影| 亚洲国产中文字幕在线视频综合| 欧美精品日韩精品| 成人动漫一区二区三区| 日韩电影在线观看一区| 国产亚洲福利社区一区| 色中色一区二区| 麻豆国产精品一区二区三区 | 亚洲国产中文字幕| 久久九九久精品国产免费直播| 91久久国产最好的精华液| 久久国产尿小便嘘嘘尿| 亚洲精品视频观看| 2024国产精品| 欧美日韩在线一区二区| 国产 欧美在线| 日韩精品亚洲专区| 亚洲欧美综合另类在线卡通| 欧美一区二区黄| 一本色道综合亚洲| 国产一区二区不卡在线| 午夜亚洲福利老司机| 亚洲欧洲成人自拍| 精品999久久久| 8x福利精品第一导航| 99久久精品免费看国产| 久久精品国产999大香线蕉|