电视机画中画窗口显示信号源信息的方法

文档序号:7615208阅读:1048来源:国知局
专利名称:电视机画中画窗口显示信号源信息的方法
技术领域
本发明属于电视机技术领域,更明确地说涉及电视机画中画窗口显示信号源信息的方法的设计。
背景技术
电视机画中画信号处理电路主要包括画中画信号源AV/TV切换、亮度/色度/同步分离处理和A/D转换及视频放大、画中画及Y/C处理、动态随机存储器、色差/基色变换和亮度控制和D/A转换及字符显示亮度开关以及主、子画面基色信号及输出切换等部分。
以往的电视机在画中画模式下,画中画窗口不能显示当前画中画信号源信息,因而给用户带来了诸多不便。

发明内容
本发明的目的,就在于克服上述缺点和不足,提供一种电视机画中画窗口显示信号源信息的方法。它能够在不增加硬件构成和生产成本的前提下,在画中画窗口中显示AV、TV、电视频道等信号源的信息,从而给用户提供更多的方便。
为了达到上述目地,本发明包括画中画信号源AV/TV切换步骤(1),还包括以下步骤
(2)读取画中画相关信息,判断用户选择的PIP/POP画中画模式;
(3)在画中画窗口中设置PIP/POP模式的画中画显示;
(4)与(2)同时,检测画中画信号源的信息;
(5)在画中画窗口中显示该画中画信号源的信息。
本发明在切换画中画信号源时,调用画中画信号源切换的函数,在该函数中增加显示信号源信息的函数,从而将信号源信息显示在画中画窗口中。上述PIP模式为画中画小画面显示,POP模式为画中画半屏显示。画中画信号源的信息包括AV、TV、电视频道等。
本发明能够在不增加硬件构成和生产成本的前提下,在画中画窗口中显示AV、TV、电视频道等信号源的信息,从而给用户提供更多的方便。它可广泛应用于液晶电视机中。



图1为本发明的电路原理方框示意图。

具体实施例方式
实施例1。一种电视机画中画窗口显示信号源信息的方法。其画中画信号处理电路原理方框示意如图1。主要包括画中画信号源AV/TV切换,Y/C处理(1)、亮度/色度/同步分离处理和A/D转换及视频放大(2)、画中画及OSD处理(3)、动态随机存储器DRAM(4)、色差/基色变换和亮度控制和D/A转换及字符显示亮度开关(5)以及主、子画面基色信号及输出切换(6)等部分。
本发明包括画中画信号源AV/TV切换步骤(1),还包括以下步骤
(2)读取画中画相关信息,判断用户选择的PIP/POP画中画模式;
(3)在画中画窗口中设置PIP/POP模式的画中画显示;
(4)与(2)同时,检测画中画信号源的信息;
(5)在画中画窗口中显示该画中画信号源的信息。
本实施例是如下实现的
①画中画信号源AV/TV切换
void CTRL_PIPSubWindow(void) //change the PIP source{if(IsPipOn()||IsPopOn()) //judge if the pip or pop is on{MstApiSetPipSubSource((MstApiGetPipMainSource()+1));//change the sourceif(IsTVInput(1)) //judge if there is tv source{VIEW_SetView(VIEW_PIP_PROGRAM); //display the program infomationVIEW_SetView(VIEW_SOUNDMODE); //display the soundmode infomation}else{VIEW_SetView(VIEW_PIP_SOURCE);//display the source information}}}
②读取画中画相关信息,判断用户选择的PIP/POP画中画模式,在画中画窗口中设置PIP/POP模式的画中画显示
void MstApiSetPipMainSource(uint8_t val) //setup the PIP signal source{if(cPipType==ppFull) //if the cPipType is ppFull{MstApiSetFreeRunMode(1,TRUE,frBlue); //setup the freerun modeMstApiSetSourceByIndex(1,val); //setup the source by the indexif(gstProgram.bCurrent1<AVS_VGA) //if current program is less than AVS_VGAVidApiSetVideoInput(gstProgram.bCurrent1);//sets the video input to specified sourceMstApiSetPipPath(tblPipSource[val]); //set the pip path<!-- SIPO <DP n="2"> --><dp n="d2"/>}else{if(IsPipOn()&amp;&amp;!MstApiIsSyncInvalid(0))//pip is on or have no signal{MstApiSetFreeRunMode(1,TRUE,frBlue); //setup the freerun modefForceTimingChange[1]=TRUE; //set sign of setmode true}if(!IsMainSourceAvailable(tblPipSource[val])){ //judge if the main source is availableif(UseDigitalPort(1)) //judge if use digitalport{if(tblPipSource[val]==ipSVO){val=6;}else{val=4;}}else //UseAnalogPort(1){if(tblPipSource[val]==ipDTV){val=3;}else{val=0;}}}MstApiSetSourceByIndex(0,val);//setup the source by indexMstApiSetMainSignalPath(); //setup the main signal path}}
③与(2)同时,检测画中画信号源的信息
uint8_t MstApiGetPipMainSource(void) //get the PIP signal source{uint8_t i,src;if(cPipType ==ppFull) //if the cPipType is ppFullsrc=gstProgram.bCurrent1;elsesrc=gstProgram.bCurrent;for(i=0;i<8;i++) //get the source index in the tblPipSource{if(MstApiGetSrcType(src)==tblPipSource[i]){return i;}}return 0;<!-- SIPO <DP n="3"> --><dp n="d3"/>}
④在画中画窗口中显示该画中画信号源的信息
void VIEW_SetView(uint8_t viewType) //display the infomation{static uint8_t boxHeight=2;//background heightstatic uint8_t boxWidth=30; //background widthuint16_t wStringId=STRING_DUMMY; //the index of STRING_DUMMYuint8_t stringLength=20;TRect *rect=NULL;uint8_t x=99,y=0; //the display positionuint8_t *pProgBuf;uint16_t string;uint16_t *pViewString; //point to the up half of one stringuint16_t *pViewStringBelow; //point to the down half of one stringuint8_t bCurrStandard;uint8_t bPreviousLength;uint8_t viewProgNoString[]={0,0,0,0};//definition some stringuint16_t code His_Pal[]={0x1c8,0x1c0,0x1c9,0x1ca,0x1c4,0x1cb};uint16_t code His_NTSC[]={0x1cc,0x1c2,0x1cd,0x1ce,0x1cf,0x1c6,0x1d0,0x1d1};uint16_t codeHis_Secam[]={0x1cd,0x1d2,0x1d3,0x1d4,0x1d5,0x1d0,0x1d6,0x1d7,0x1d8,0x1d9};uint16_t code His_BG[]={0x1da,0x1db,0x1dc,0x1dd};uint16_t code His_DK[]={0x1de,0x1df,0x1e0,0x1e1};uint16_t code His_M[]={0x1e8,0x1e9,0x1ea,0x1eb};uint16_t code His_I[]={0x1e2,0x1e3};uint16_t code His_L[]={0x1e4,0x1e5};uint16_t code His_LL[]={0x1e6,0x1e6};uint16_t codeHis_Nicam_Stereo[]={0x1f8,0x1f9,0x1fa,0x1fb,0,0x1f0,0x1f1,0x1fc,0x1fd,0x1fe,0x1ff,0,0x1f2,0x1f3};uint16_t codeHis_Nicam_Mono[]={0x1f8,0x1f9,0x1fa,0x1fb,0,0x1ec,0x1ed,0x1fc,0x1fd,0x1fe,0x1ff,0,0x1ee,0x1ef};uint16_t codeHis_Nicam_Dual_A[]={0x1f8,0x1f9,0x1fa,0x1fb,0,0x1f4,0x1fc,0x1fd,0x1fe,0x1ff,0,0x1f5};uint16_t codeHis_Nicam_Dual_B[]={0x1f8,0x1f9,0x1fa,0x1fb,0x1f6,0x1fc,0x1fd,0x1fe,0x1ff,0,0x1f7};uint16_t code His_Mono[]={0x1ec,0x1ed,0x1ee,0x1ef};uint16_t code His_Stereo[]={0x1f0,0x1f1,0x1f2,0x1f3};uint16_t code His_Dual_A[]={0x1f4,0x1f5};uint16_t code His_Dual_B[]={0x1f6,0x1f7};uint16_t code His_Auto[]={0x1c0,0x1c1,0x1c2,0x1c3,0x1c4,0x1c5,0x1c6,0x1c7};uint16_t code muteString[]={0,SYMBOL_MUTE1,SYMBOL_MUTE2,0};uint16_t code muteStringBelow[]={0,SYMBOL_MUTE3,SYMBOL_MUTE4,0};if (gstGlobal.State==MENUMODE || gstGlobal.State==TXTMODE ||gstGlobal.State==SERVICEMODE){return;}if(!VIEW_IsAnyViewActive()&amp;&amp;!(MODE_IS_OSD))/**there is no view active */<!-- SIPO <DP n="4"> --><dp n="d4"/>{#if defined__CAPTION__SwitchToRomFont();OSD_CTRL|=0x0D; /**enable OSD */#endifSetGdw(GDW_VIEW);osd();}if(gstGlobal.Language==STRG_X_CHINESE){MstOsdLoadCpsMonoFonts(ndxCpsExternMonoFont);}gstMstCharDispAttr.bBgColor=CP_VIEWBACKCOLOR;gstMstCharDispAttr.bFgColor=CP_VIEWFRONTCOLOR;gbRow=0;gbCol=0;switch(viewType){case VIEW_PROGRAM //PGM and AV uses the same position and timercase VIEW_PIP_PROGRAM; //PIP source is TVpProgBuf=CTRL_GetProgDigits(); //pointer to Digit Bufferif(gstView.Av==VISIBLE)VIEW_ClearView(VIEW_AV_SOURCE); //clear AV-view if visiblegstView.Pgm=VISIBLE;VIEW_SetProgramNoString(pProgBuf,1,&amp;viewProgNoString);//make charaster for first digitVIEW_SetProgramNoString(pProgBuf,2,&amp;viewProgNoString);//make charaster for second digitVIEW_SetProgramNoString(pProgBuf,3,&amp;viewProgNoString);boxWidth=8;boxHeight=4;LoadSwTimer(VIEW_1_TIMER,VIEW_1_TIMEOUT,400);/**time-out4s */break;case VIEW_NO_SIGNALx=50;y=60;wStringId=STRING_NOSIGNAL;boxWidth=GetItemLength(wStringId,gstGlobal.Language)+2;boxHeight=4;break;case VIEW_PIP_SOURCE//PIP source is not TVVIEW_ClearView(VIEW_PROGRAM); //clear prog-view if visibleVIEW_ClearView(VIEW_AV_SOURCE); //clear AV-view if visiblegstView.PipAV =VISIBLE; //make the AV-view visiblewStringId=GetSourceStringId(gstProgram.bCurrent1);//get program stringboxWidth=GetItemLength(wStringId,gstGlobal.Language);//get the length of the program stringLoadSwTimer(VIEW_1_TIMER,VIEW_1_TIMEOUT,400); //time-out4sbreak;case VIEW_AY_SOURCEif(gstView.Pgm==VISIBLE){<!-- SIPO <DP n="5"> --><dp n="d5"/>VIEW_ClearView(VIEW_PROGRAM);}gstView.Av=VISIBLE;wStringId=GetSourceStringId(gstProgram.bCurrent);boxWidth=GetItemLength(wStringId,gstGlobal.Language);LoadSwTimer(VIEW_1_TIMER,VIEW_1_TIMEOUT,400);/**time-out4s */break;case VIEW_MUTEif(gstView.Time==VISIBLE)return;if(gstView.SoundMode==VISIBLE){VIEW_ClearView(VIEW_SOUNDMODE);}gstView.Mute=VISIBLE;gstNoticeView.Mute=FALSE;pViewString=&amp;muteString
;pViewStringBelow=&amp;muteStringBelow
;stringLength=8;gbCol=VIEW_MUTE_SC;gbRow=VIEW_MUTE_SR;break;case VIEW_SOUNDMODEif(gstView.Time==VISIBLE)return;VIEW_ClearView(VIEW_SOUNDMODE);/**clear old sound mode view */gstView.SoundMode=VISIBLE;switch(AudApiGetSoundMode(AUD_LOUDSPEAKER)){case AUD_STEREOcase AUD_SAP_STEREOcase AUD_EXT_STEREOpViewString=&amp;His_Stereo
;//STRING_AUD_STEREO;stringLength=sizeof(His_Stereo);break;case AUD_DUAL_Acase AUD_EXT_DUAL_ApViewString =&amp;His_Dual_A
;stringLength =sizeof(His_Dual_A);break;case AUD_DUAL_BpViewString =&amp;His_Dual_B
;//string =STRING_HIS_DUAL_B;stringLength=sizeof(His_Dual_B);break;case AUD_NIC_DUAL_BpViewString=&amp;His_Nicam_Dual_B
;//stringSTRING_HIS_NICAM_DUAL_B;stringLength=sizeof(His_Nicam_Dual_B);break;case AUD_NIC_DUAL_ApViewString=&amp;His_Nicam_Dual_A
;//string=<br/>STRING_HIS_NICAM_DUAL_A;stringLength=sizeof(His_Nicam_Dual_A);break;case AUD_NIC_STEREOpViewString=&amp;His_Nicam_Stereo
;//stringSTRING_HIS_NICAM_STEREO;<!-- SIPO <DP n="6"> --><dp n="d6"/>stringLength=sizeof(His_Nicam_Stereo);break;case AUD_NIC_MONOcase AUD_NIC_FM_MONOpViewString=&amp;His_Nicam_Mono
;//string=STRING_HIS_NICAM_MONO;stringLength=sizeof(His_Nicam_Mono);break;defaultpViewString=&amp;His_Mono
;//string =STRING_HIS_MONO;stringLength=sizeof(His_Mono);break;}stringLength/=2;if(gstView.SoundStandard==VISIBLE){gbRow=VIEW_SOUNDMODE_SR;gbCol=18-stringLength/2;}else{gbRow=VIEW_SOUNDMODE_SR;gbCol=VIEW_SOUNDMODE_SC;}LoadSwTimer(VIEW_1_TIMER,VIEW_1_TIMEOUT,400);break;case VIEW_SOUNDSTANDARDVIEW_ClearView(VIEW_SOUNDSTANDARD);/**clear old soundstandard view */gstView.SoundStandard=VISIBLE;gstNoticeView.SoundStandard=FALSE;gbRow=VIEW_SOUNDSTANDARD_SR;gbCol=bPreviousLength+1;switch(CTRL_GetSoundSysNvm(gstProgram.bCurrent)//BQ050322//switch(CTRLAUDIO_GetActiveStandard())//gstProgramOnScreen.SoundStandard){case TUN_BGpViewString=&amp;His_BG
;stringLength=sizeof(His_BG);break;case TUN_IpViewString=&amp;His_I
;stringLength=sizeof(His_I);break;case TUN_M_JAPANcase TUN_M_BTSCcase TUN_M_KOREApViewString=&amp;His_M
;stringLength=sizeof(His_M);break;case TUN_LpViewString=&amp;His_L
;stringLength=sizeof(His_L);break;case TUN_LLpViewString=&amp;His_LL
;stringLength=sizeof(His_LL);<!-- SIPO <DP n="7"> --><dp n="d7"/>break;case TUN_DKpViewString=&amp;His_DK
;stringLength=sizeof(His_DK);break;defaultpViewString=&amp;His_Auto
;//BQ050423stringLength=sizeof(His_Auto);break;}stringLength/=2;bPreviousLength=gbCol+stringLength/2;//vvv-tempLoadSwTimer(VIEW_1_TIMER,VIEW_1_TIMEOUT,400);//VIEW1 OR VIEW2?RICKYbreak;case VIEW_COLORSTANDARDVIEW_ClearView(VIEW_COLORSTANDARD);/**clear old colorstandardview */gstView.ColorStandard=VISIBLE;gstNoticeView.ColorStandard=FALSE;gbRow=VIEW_COLORSTANDARD_SR;gbCol=VIEW_COLORSTANDARD_SC;#ifdef AUTODETECTION_COLORSTANDARDif(gstProgramOnScreen.AutoColorStd==1){pViewString=&amp;His_Auto
;stringLength=sizeof(His_Auto);}else#endif{bCurrStandard=VidApiGetColorStdIndexExt();switch(bCurrStandard){case CSTD_PAL_Ncase CSTD_PAL_Mcase CSTD_PAL_60case CSTD_PAL_BGpViewString=&amp;His_Pal
;stringLength=sizeof(His_Pal);break;case CSTD_NTSC_Mcase CSTD_NTSC_44_4pViewString=&amp;His_NTSC
;stringLength=sizeof(His_NTSC)break;case CSTD_SECAMpViewString=&amp;His_Secam
;stringLength=sizeof(His_Secam);break;case CSTD_NOSTDstring=STRING_NO;break;case CSTD_AUTOpViewString=&amp;His_Auto
;stringLength=sizeof(His_Auto);break;defaultpViewString=&amp;His_Pal
;stringLength=sizeof(His_Pal);<!-- SIPO <DP n="8"> --><dp n="d8"/>break;}}stringLength/=2;bPreviousLength=VIEW_COLORSTANDARD_SC+stringLength/2;LoadSwTimer(VIEW_1_TIMER,VIEW_1_TIMEOUT,400);//VIEW1 OR VIEW2?RICKYbreak;#if__TTX_CONFIG__!=NO_TTXcase VIEW_NO_TEXTif(gstView.Time==VISIBLE)VIEW_ClearView(VIEW_TIME); /*clear view for time */gstView.NoText =VISIBLE;gbRow=VIEW_NO_TEXT_SR;gbCol=VIEW_NO_TEXT_SC;wStringId=STRING_NOTEXT;stringLength=GetItemLength(wStringId,gstGlobal.Language);LoadSwTimer(VIEW_3_TIMER,VIEW_3_TIMEOUT,800);/**timeout8s */break;#endifcase VIEW_TIMEif(gstView.NoText==VISIBLE)VIEW_ClearView(VIEW_NO_TEXT);gstView.Time=VISIBLE;PaintClockTime();gbRow=25; /**disable writing of a string */break;case VIEW_I2C_OFFif(ApiGetValueDirectly(API_OPTION_SHOW_I2C_OFF)){gstView.I2cOff=VISIBLE;gbRow=VIEW_I2C_OFF_SR;gbCol=VIEW_I2C_OFF_SC;wStringId=STRING_CPU_OFF;boxWidth=GetItemLength(wStringId,gstGlobal.Language)+2;boxHeight=4;}break;case VIEW_FORMATgstView.Zoom=VISIBLE;stringLength=8;if(CTRL_GetPictureFormat()==FORMAT_WIDE_4_3)string=STRING_ZOOM_1;else if(CTRL_GetPictureFormat()==FORMAT_WIDE_16_9)string=STRING_ZOOM_2;else if(CTRL_GetPictureFormat()==FORMAT_WIDE_CINEMA)string=STRING_ZOOM_5;gbRow=VIEW_FORMAT_SR;gbCol=VIEW_FORMAT_SC;LoadSwTimer(VIEW_1_TIMER,VIEW_1_TIMEOUT,400);/**timeout4s */break;#ifdef__VCHIP__case VIEW_VCHIP_BLOCKINGif(gstView.VchipBlocking==VISIBLE)VIEW_ClearView(VIEW_VCHIP_BLOCKING);gstView.VchipBlocking=VISIBLE;<!-- SIPO <DP n="9"> --><dp n="d9"/>gbRow=VIEW_VCHIP_BLOCKING_SR;gbCol=VIEW_VCHIP_BLOCKING_SC;string=STRING_VCHIP_TV_BLOCKED;stringLength=GetItemLength(string,gstGlobal.Language);#if defined__CAPTION__SPECIAL_SwitchCaptionDisplayOff();#endifbreak;#endif}#if defined__CAPTION__#ifdef__VCHIP__if(gstView.VchipBlocking==INVISIBLE)#endifSwitchToRomFont();#ifdef__VCHIP__if(gstView.VchipBlocking==INVISIBLE)#endif{SetGdw(GDW_OSD);OSD_CTRL|=0x0D; //enable OSDSPECIAL_SwitchCaptionDisplayOff();}#endifMstOsdSetTextColor((gstMstCharDispAttr.bFgColor<<4)|gstMstCharDispAttr.bBgColor,MONOFONT);//set the text colorif(viewType==VIEW_AV_SOURCE||viewType==VIEW_PROGRAM){rect=&amp;(gstViewRect
);}else if(viewType==VIEW_PIP_SOURCE||viewType==VIEW_PIP_PROGRAM){rect=&amp;(gstViewRect[1]);} //set the rectif(viewType==VIEW_SOUNDMODE||viewType==VIEW_FORMAT#ifdef__VCHIP__||viewType==VIEW_VCHIP_BLOCKING#endif||viewType==VIEW_SOUNDSTANDARD||viewType==VIEW_COLORSTANDARD){gfTrueXRam=TRUE;WriteStringFromBuffer(pViewString,stringLength,STRG_IGNORE,STRG_LEFT);gfTrueXRam=FALSE;}else if(viewType==VIEW_AV_SOURCE||viewType==VIEW_PIP_SOURCE){MstOsdDrawWindow(x,y,boxWidth,boxHeight,rect); //draw the windowMstOsdEnableViewType(); //enable the viewtypeWriteString(wStringId); //write the stringMstOsdShow(); //show the infofViewOn=1; //make the sign of show true}else if(viewType==VIEW_PROGRAM||viewType==VIEW_PIP_PROGRAM){<!-- SIPO <DP n="10"> --><dp n="d10"/>MstOsdDrawWindow(x,y,boxWidth,boxHeight,rect);MstOsdEnableViewType();MstOsdDrawMixedString(0,0,viewProgNoString,4);MstOsdShow();fViewOn=1;}else if(viewType==VIEW_I2C_OFF||viewType==VIEW_NO_SIGNAL){MstOsdDrawWindow(x,y,boxWidth,boxHeight,rect);WriteString(wStringId);MstOsdShow();fViewOn=1;}else{WriteStringFromBuffer(pViewString,stringLength,STRG_IGNORE,STRG_LEFT);gbRow++;gbCol=VIEW_PROGRAM_SC;WriteStringFromBuffer(pViewStringBelow,stringLength,STRG_IGNORE,STRG_LEFT);}}
实施例1能够在不增加硬件构成和生产成本的前提下,在画中画窗口中显示AV、TV、电视频道等信号源的信息,从而给用户提供更多的方便。可广泛应用于液晶电视机中。
权利要求
1.一种电视机画中画窗口显示信号源信息的方法,包括画中画信号源AV/TV切换步骤(1),其特征在于它还包括以下步骤
(2)读取画中画相关信息,判断用户选择的PIP/POP画中画模式;
(3)在画中画窗口中设置PIP/POP模式的画中画显示;
(4)与(2)同时,检测画中画信号源的信息;
(5)在画中画窗口中显示该画中画信号源的信息。
全文摘要
一种电视机画中画窗口显示信号源信息的方法,属于电视机技术。它包括(1)画中画信号源AV/TV切换;(2)读取画中画相关信息,判断用户选择的PIP/POP画中画模式;(3)在画中画窗口中设置PIP/POP模式的画中画显示;(4)与(2)同时,检测画中画信号源的信息;(5)在画中画窗口中显示该画中画信号源的信息等步骤。它能够在不增加硬件构成和生产成本的前提下,在画中画窗口中显示信号源的信息,从而给用户提供更多的方便。可广泛应用于液晶电视机中。
文档编号H04N5/45GK1741595SQ20051004379
公开日2006年3月1日 申请日期2005年6月15日 优先权日2005年6月15日
发明者吴叶, 施志峰, 毕强, 花红民 申请人:海信集团有限公司, 青岛海信电器股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1