1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261 |
- /* ///////////////////////////////////////////////////////////////////////////
- //
- // INTEL CORPORATION PROPRIETARY INFORMATION
- // This software is supplied under the terms of a license agreement or
- // nondisclosure agreement with Intel Corporation and may not be copied
- // or disclosed except in accordance with the terms of that agreement.
- // Copyright(c) 1999-2009 Intel Corporation. All Rights Reserved.
- //
- // Intel(R) Integrated Performance Primitives
- // JPEG Processing (ippJP)
- //
- */
- #if !defined( __IPPJ_H__ ) || defined( _OWN_BLDPCS )
- #define __IPPJ_H__
- #if defined (_WIN32_WCE) && defined (_M_IX86) && defined (__stdcall)
- #define _IPP_STDCALL_CDECL
- #undef __stdcall
- #endif
- #ifndef __IPPDEFS_H__
- #include "ippdefs.h"
- #endif
- #ifdef __cplusplus
- extern "C" {
- #endif
- #if !defined( _OWN_BLDPCS )
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // IppiEncodeHuffmanSpec
- //
- // Purpose:
- // Encoder Huffman table in fast-to-use format
- //
- // Notes:
- //
- */
- struct EncodeHuffmanSpec;
- typedef struct EncodeHuffmanSpec IppiEncodeHuffmanSpec;
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // IppiDecodeHuffmanSpec
- //
- // Purpose:
- // Decoder Huffman table in fast-to-use format
- //
- // Notes:
- //
- */
- struct DecodeHuffmanSpec;
- typedef struct DecodeHuffmanSpec IppiDecodeHuffmanSpec;
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // IppiEncodeHuffmanState
- //
- // Purpose:
- // Huffman encoder state
- //
- // Notes:
- //
- */
- struct EncodeHuffmanState;
- typedef struct EncodeHuffmanState IppiEncodeHuffmanState;
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // IppiDecodeHuffmanState
- //
- // Purpose:
- // Huffman decoder state
- //
- // Notes:
- //
- */
- struct DecodeHuffmanState;
- typedef struct DecodeHuffmanState IppiDecodeHuffmanState;
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // IppiEncodeState_JPEG2K
- //
- // Purpose:
- // State structure for JPEG2000 entropy encoder
- //
- // Notes:
- //
- */
- struct iEncodeState_JPEG2K;
- typedef struct iEncodeState_JPEG2K IppiEncodeState_JPEG2K;
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // IppiDecodeCBProgrState_JPEG2K
- //
- // Purpose:
- // State structure for JPEG2000 entropy decoder
- //
- // Notes:
- //
- */
- struct iDecodeCBProgrState_JPEG2K;
- typedef struct iDecodeCBProgrState_JPEG2K IppiDecodeCBProgrState_JPEG2K;
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // IppiWTFilterFirst
- //
- // Purpose:
- // Enumerator of relative positions of high-pass and low-pass filters
- // for JPEG 2000 wavelet transforms.
- //
- // Notes:
- //
- */
- typedef enum
- {
- ippWTFilterFirstLow,
- ippWTFilterFirstHigh
- } IppiWTFilterFirst;
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // IppiWTSubband
- //
- // Purpose:
- // Enumerator of wavelet transform subband
- // for JPEG 2000 entropy coder.
- //
- // ippWTSubbandLxLy - low-pass filtered along x and y directions,
- // ippWTSubbandLxHy - low-pass filtered along x
- // and high-pass filtered along y direction,
- // ippWTSubbandHxLy - high-pass filtered along x
- // and low-pass filtered along y direction,
- // ippWTSubbandHxHy - high-pass filtered by x and y directions.
- //
- // Notes:
- //
- */
- typedef enum
- {
- ippWTSubbandLxLy,
- ippWTSubbandLxHy,
- ippWTSubbandHxLy,
- ippWTSubbandHxHy
- } IppiWTSubband;
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // IppiMQTermination
- //
- // Purpose:
- // Enumerator of MQ encoder termination types.
- // It used in JPEG2000 entropy coding functions.
- //
- // ippMQTermSimple - simple termination
- // (some extra bytes can be placed),
- // ippMQTermNearOptimal - very good termination mode,
- // ippMQTermPredictable - termination mode used for
- // predictable error resilience
- //
- // Notes:
- //
- */
- typedef enum
- {
- ippMQTermSimple,
- ippMQTermNearOptimal,
- ippMQTermPredictable
- } IppiMQTermination;
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // IppiMQRateAppr
- //
- // Purpose:
- // Enumerator of MQ padding approximation in rate-distortion estimation.
- // It used in JPEG2000 entropy coding functions.
- //
- // ippMQRateApprGood - non-optimal approximation,
- // rate can be overestimated a little.
- //
- // Notes: only one approximation model implemented at the moment
- //
- */
- typedef enum
- {
- ippMQRateApprGood
- } IppiMQRateAppr;
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- //
- // Purpose:
- // Enumerator of JPEG2000 entropy coder end decoder code style flags.
- //
- // Notes:
- // IPP_JPEG2K_VERTICALLY_CAUSAL_CONTEXT
- // - vertically causal context will be formed,
- // IPP_JPEG2K_SELECTIVE_MQ_BYPASS
- // - selective MQ coding bypassing will be used (i.e. raw coding
- // will be used for some passes),
- // IPP_JPEG2K_TERMINATE_ON_EVERY_PASS
- // - terminate MQ coder on every pass,
- // IPP_JPEG2K_RESETCTX_ON_EVERY_PASS
- // - reset MQ coder context on every pass,
- // IPP_JPEG2K_USE_SEGMENTATION_SYMBOLS
- // - use segmentation symbol sequence for error resilence,
- // IPP_JPEG2K_LOSSLESS_MODE
- // - inform about the use of lossless wavelet transforms
- // in rate-distortion estimation,
- // IPP_JPEG2K_DEC_DO_NOT_CLEAR_CB
- // - do not clear codeblock data before decoding,
- // IPP_JPEG2K_DEC_DO_NOT_RESET_LOW_BITS
- // - do not reset low-order bits after decoding,
- // IPP_JPEG2K_DEC_DO_NOT_CLEAR_SFBUFFER
- // - do not clear buffer before decoding to keep previous
- // significance state information.
- // IPP_JPEG2K_DEC_CHECK_PRED_TERM
- // - check predictable termination during decoding,
- // if it is not right 'damage in codeblock' error
- // code will be generated.
- // This flag should be used only in predictable
- // termination mode.
- //
- */
- enum
- {
- IPP_JPEG2K_VERTICALLY_CAUSAL_CONTEXT = 1,
- IPP_JPEG2K_SELECTIVE_MQ_BYPASS = 1 << 1,
- IPP_JPEG2K_TERMINATE_ON_EVERY_PASS = 1 << 2,
- IPP_JPEG2K_RESETCTX_ON_EVERY_PASS = 1 << 3,
- IPP_JPEG2K_USE_SEGMENTATION_SYMBOLS = 1 << 4,
- IPP_JPEG2K_LOSSLESS_MODE = 1 << 5,
- IPP_JPEG2K_DEC_CONCEAL_ERRORS = 1 << 16,
- IPP_JPEG2K_DEC_DO_NOT_CLEAR_CB = 1 << 17,
- IPP_JPEG2K_DEC_DO_NOT_RESET_LOW_BITS = 1 << 18,
- IPP_JPEG2K_DEC_DO_NOT_CLEAR_SFBUFFER = 1 << 19,
- IPP_JPEG2K_DEC_CHECK_PRED_TERM = 1 << 20
- };
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- //
- // Purpose:
- // Enumerator of lossless JPEG predictors
- //
- */
- enum
- {
- PRED1 = 1,
- PRED2 = 2,
- PRED3 = 3,
- PRED4 = 4,
- PRED5 = 5,
- PRED6 = 6,
- PRED7 = 7
- };
- #endif /* _OWN_BLDPCS */
- /* ///////////////////////////////////////////////////////////////////////////
- // Miscelenauos functions
- /////////////////////////////////////////////////////////////////////////// */
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippjGetLibVersion
- //
- // Purpose:
- // get the library version
- //
- // Parameters:
- //
- // Returns:
- // pointer to structure describing version of the ippj library
- //
- // Notes:
- // don't free the pointer to IppLibraryVersion
- */
- IPPAPI( const IppLibraryVersion*, ippjGetLibVersion, (void) )
- /* ///////////////////////////////////////////////////////////////////////////
- // Huffman Encoding Functions (Baseline)
- /////////////////////////////////////////////////////////////////////////// */
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiEncodeHuffmanRawTableInit_JPEG_8u
- //
- // Purpose:
- // Build Huffman "raw" table from counted statistics of
- // Huffman symbols for 8-bit precision
- //
- // Parameters:
- // pStatistics - pointer to array of 256 int,
- // with the one entry for each of possible huffman symbol.
- // pListBits - pointer to array of 16 bytes.
- // pListVals - pointer to array of 256 bytes.
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // pListBits represents list of BITS and pListVals represent list
- // of HUFFVAL, as specified in ISO/IEC 10918-1, Figure B.7
- */
- IPPAPI(IppStatus, ippiEncodeHuffmanRawTableInit_JPEG_8u, (
- const int pStatistics[256],
- Ipp8u* pListBits,
- Ipp8u* pListVals))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiEncodeHuffmanSpecGetBufSize_JPEG_8u
- //
- // Purpose:
- // get size of IppjEncodeHuffmanSpec struct
- //
- // Parameters:
- // size - where write size of buffer
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiEncodeHuffmanSpecGetBufSize_JPEG_8u, (
- int* size))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiEncodeHuffmanSpecInit_JPEG_8u
- //
- // Purpose:
- // Build Huffman table for encoder
- // in fast-to-use format from "raw" Huffman table
- //
- // Parameters:
- // pListBits - pointer to array of 16 bytes.
- // pListVals - pointer to array of up to 256 bytes.
- // pEncHuffSpec - pointer to Huffman table to be initialized
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // pListBits represents list of BITS and pListVals represent list
- // of HUFFVAL, as specified in ISO/IEC 10918-1, Figure B.7
- */
- IPPAPI(IppStatus, ippiEncodeHuffmanSpecInit_JPEG_8u, (
- const Ipp8u* pListBits,
- const Ipp8u* pListVals,
- IppiEncodeHuffmanSpec* pEncHuffSpec))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiEncodeHuffmanSpecInitAlloc_JPEG_8u
- //
- // Purpose:
- // Allocate memory and build Huffman table for encoder
- // in fast-to-use format from "raw" Huffman table
- //
- // Parameters:
- // pListBits - pointer to array of 16 bytes.
- // pListVals - pointer to array of up to 256 bytes.
- // ppEncHuffSpec - pointer to pointer on Huffman table
- // to be allocated and initialized
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // pListBits represents list of BITS and pListVals represent
- // list of HUFFVAL, as specified in ISO/IEC 10918-1, Figure B.7
- */
- IPPAPI(IppStatus, ippiEncodeHuffmanSpecInitAlloc_JPEG_8u, (
- const Ipp8u* pListBits,
- const Ipp8u* pListVals,
- IppiEncodeHuffmanSpec** ppEncHuffSpec))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiEncodeHuffmanSpecFree_JPEG_8u
- //
- // Purpose:
- // Free memory for encoder Huffman table
- //
- // Parameters:
- // pEncHuffSpec - pointer to Huffman table
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiEncodeHuffmanSpecFree_JPEG_8u, (
- IppiEncodeHuffmanSpec* pEncHuffSpec))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiEncodeHuffmanStateGetBufSize_JPEG_8u
- //
- // Purpose:
- // get size of IppiEncoderHuffmanState struct
- //
- // Parameters:
- // size - where write size of buffer
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiEncodeHuffmanStateGetBufSize_JPEG_8u, (
- int* size))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiEncodeHuffmanStateInit_JPEG_8u
- //
- // Purpose:
- // Build EncHuffState struct for encoder
- //
- // Parameters:
- // pEncHuffState - pointer to EncHuffState struct to be initialized
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiEncodeHuffmanStateInit_JPEG_8u, (
- IppiEncodeHuffmanState* pEncHuffState))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiEncodeHuffmanStateInitAlloc_JPEG_8u
- //
- // Purpose:
- // Allocate memory and build EncHuffState struct for encoder
- //
- // Parameters:
- // ppEncHuffState - pointer to pointer on EncHuffState struct
- // to be allocated and initialized
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiEncodeHuffmanStateInitAlloc_JPEG_8u, (
- IppiEncodeHuffmanState** ppEncHuffState))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiEncodeHuffmanStateFree_JPEG_8u
- //
- // Purpose:
- // Free memory for encoder EncHuffState struct
- //
- // Parameters:
- // pEncHuffState - pointer to EncHuffState struct
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiEncodeHuffmanStateFree_JPEG_8u, (
- IppiEncodeHuffmanState* pEncHuffState))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiEncodeHuffman8x8_JPEG_16s1u_C1
- //
- // Purpose:
- // Huffman encode 8x8 block of quantized DCT coefs
- //
- // Parameters:
- // pSrc pointer to 8x8 block of quantized DCT coefficients
- // pDst pointer to output JPEG bitstream
- // dstLenBytes bitstream length, in bytes
- // pDstCurrPos pointer to current byte offset in buffer (in/out)
- // pLastDC pointer to last DC coefficient from previous block of
- // the same color component (in/out)
- // pEncHuffState pointer to Huffman state struct
- // pDcTable pointer to Huffman DC table
- // pAcTable pointer to Huffman AC table
- // bFlushState if non zero - only flush any pending bits
- // from IppiEncodeHuffmanState to bitstream
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // set bFlushState to 1, after processing all MCUs in scan, to
- // flush any pending bits from IppiEncodeHuffmanState to bitstream
- // Encoding perform as defined in ISO/IEC 10918-1.
- // Appendix A - Requirements and guidelines,
- // Annex F, F.1.2 - Baseline Huffman encoding procedures.
- */
- IPPAPI(IppStatus, ippiEncodeHuffman8x8_JPEG_16s1u_C1, (
- const Ipp16s* pSrc,
- Ipp8u* pDst,
- int dstLenBytes,
- int* pDstCurrPos,
- Ipp16s* pLastDC,
- const IppiEncodeHuffmanSpec* pDcTable,
- const IppiEncodeHuffmanSpec* pAcTable,
- IppiEncodeHuffmanState* pEncHuffState,
- int bFlushState))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiEncodeHuffman8x8_Direct_JPEG_16s1u_C1
- //
- // Purpose:
- // Huffman encode 8x8 block of quantized DCT coefs
- //
- // Parameters:
- // pSrc pointer to 8x8 block of quantized DCT coefficients
- // pDst pointer to output JPEG bitstream
- // pDstBitsLen bitstream length, in bits (in/out)
- // pLastDC pointer to last DC coefficient from previous block of
- // the same color component (in/out)
- // pDcTable pointer to Huffman DC table
- // pAcTable pointer to Huffman AC table
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // Encoding perform as defined in ISO/IEC 10918-1.
- // Appendix A - Requirements and guidelines,
- // Annex F, F.1.2 - Baseline Huffman encoding procedures.
- */
- IPPAPI(IppStatus, ippiEncodeHuffman8x8_Direct_JPEG_16s1u_C1, (
- const Ipp16s* pSrc,
- Ipp8u* pDst,
- int* pDstBitsLen,
- Ipp16s* pLastDC,
- const IppiEncodeHuffmanSpec* pDcTable,
- const IppiEncodeHuffmanSpec* pAcTable))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiGetHuffmanStatistics8x8_JPEG_16s_C1
- //
- // Purpose:
- // Calculate statistics of huffman values
- //
- // Parameters:
- // pSrc - pointer to 8x8 block of quantized DCT coefficients
- // pDcStatistics - pointer to 256 elements array
- // pAcStatistics - pointer to 256 elements array
- // pLastDC - pointer to DC coefficient from previous 8x8 block
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiGetHuffmanStatistics8x8_JPEG_16s_C1, (
- const Ipp16s* pSrc,
- int pDcStatistics[256],
- int pAcStatistics[256],
- Ipp16s* pLastDC))
- /* ///////////////////////////////////////////////////////////////////////////
- // Huffman Encoding Functions (Progressive)
- /////////////////////////////////////////////////////////////////////////// */
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiGetHuffmanStatistics8x8_DCFirst_JPEG_16s_C1
- //
- // Purpose:
- // Calculate statistics of huffman values, progressive coding,
- // first scan
- //
- // Parameters:
- // pSrc - pointer to 8x8 block of quantized DCT coefficients
- // pDcStatistics - pointer to 256 elements array
- // pLastDC - pointer to DC coefficient from previous 8x8 block
- // Al - successive approximation bit position low
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiGetHuffmanStatistics8x8_DCFirst_JPEG_16s_C1, (
- const Ipp16s* pSrc,
- int pDcStatistics[256],
- Ipp16s* pLastDC,
- int Al))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiGetHuffmanStatistics8x8_ACFirst_JPEG_16s_C1
- //
- // Purpose:
- // Calculate statistics of huffman values, progressive coding,
- // first scan
- //
- // Parameters:
- // pSrc - pointer to 8x8 block of quantized DCT coefficients
- // pAcStatistics - pointer to 256 elements array
- // Ss - start of spectral selection
- // Se - end of spectral selection
- // Al - successive approximation bit position low
- // pEncHuffState - huffman encoder state
- // bFlushState - set to 1, after processing all MCUs
- // to flush EOB counter
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiGetHuffmanStatistics8x8_ACFirst_JPEG_16s_C1, (
- const Ipp16s* pSrc,
- int pAcStatistics[256],
- int Ss,
- int Se,
- int Al,
- IppiEncodeHuffmanState* pEncHuffState,
- int bFlushState))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiGetHuffmanStatistics8x8_ACRefine_JPEG_16s_C1
- //
- // Purpose:
- // Calculate statistics of huffman values, progressive coding,
- // next scans
- //
- // Parameters:
- // pSrc - pointer to 8x8 block of quantized DCT coefficients
- // pAcStatistics - pointer to 256 elements array
- // Ss - start of spectral selection
- // Se - end of spectral selection
- // Al - successive approximation bit position low
- // pEncHuffState - huffman encoder state
- // bFlushState - set to 1, after processing all MCUs
- // to flush EOB counter
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiGetHuffmanStatistics8x8_ACRefine_JPEG_16s_C1, (
- const Ipp16s* pSrc,
- int pAcStatistics[256],
- int Ss,
- int Se,
- int Al,
- IppiEncodeHuffmanState* pEncHuffState,
- int bFlushState))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiEncodeHuffman8x8_DCFirst_JPEG_16s1u_C1
- //
- // Purpose:
- // huffman encode DC coefficient from 8x8 block of quantized
- // DCT coefficients. Progressive coding, first scan
- //
- // Parameters:
- // pSrc - pointer to 8x8 block of quantized DCT coefficients
- // pDst - pointer to output bitstream
- // dstLenBytes - length of bitstream buffer
- // pDstCurrPos - corrent byte position in bitstream buffer
- // pLastDC - pointer to DC coefficient from previous 8x8 block
- // Al - successive approximation bit position low
- // pDcTable - pointer to DC huffman table
- // pEncHuffState - pointer to encoder huffman state
- // bFlushState - set to 1, after processing all MCUs
- // to flush any pending bits from state
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // Encoding perform as defined in ISO/IEC 10918-1.
- // Appendix A - Requirements and guidelines,
- // Annex G, G.1.2 - Progressive encoding procedures with Huffman.
- */
- IPPAPI(IppStatus, ippiEncodeHuffman8x8_DCFirst_JPEG_16s1u_C1, (
- const Ipp16s* pSrc,
- Ipp8u* pDst,
- int dstLenBytes,
- int* pDstCurrPos,
- Ipp16s* pLastDC,
- int Al,
- const IppiEncodeHuffmanSpec* pDcTable,
- IppiEncodeHuffmanState* pEncHuffState,
- int bFlushState))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiEncodeHuffman8x8_DCRefine_JPEG_16s1u_C1
- //
- // Purpose:
- // huffman encode DC coefficient from 8x8 block of quantized
- // DCT coefficients. Progressive coding, next scans
- //
- // Parameters:
- // pSrc - pointer to 8x8 block of quantized DCT coefficients
- // pDst - pointer to output bitstream
- // dstLenBytes - length of bitstream
- // pDstCurrPos - current byte position in bitstream
- // Al - successive approximation bit position low
- // pEncHuffState - pointer to encoder huffman state
- // bFlushState - set to 1, after processing all MCUs
- // to flush any pending bits from state
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // Encoding perform as defined in ISO/IEC 10918-1.
- // Appendix A - Requirements and guidelines,
- // Annex G, G.1.2 - Progressive encoding procedures with Huffman.
- */
- IPPAPI(IppStatus, ippiEncodeHuffman8x8_DCRefine_JPEG_16s1u_C1, (
- const Ipp16s* pSrc,
- Ipp8u* pDst,
- int dstLenBytes,
- int* pDstCurrPos,
- int Al,
- IppiEncodeHuffmanState* pEncHuffState,
- int bFlushState))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiEncodeHuffman8x8_ACFirst_JPEG_16s1u_C1
- //
- // Purpose:
- // huffman encode AC coefficients from 8x8 block of quantized
- // DCT coefficients. Progressive coding, first scan
- //
- // Parameters:
- // pSrc - pointer to 8x8 block of quantized DCT coefficients
- // pDst - pointer to output bitstream buffer
- // dstLenBytes - length of bitstream buffer
- // pDstCurrPos - current byte position in bitstream buffer
- // Ss - start of spectral selection
- // Se - end of spectral selection
- // Al - successive approximation bit position low
- // pAcTable - pointer to encoder haffman AC table
- // pEncHuffState - pointer encoder huffman state
- // bFlushState - set to 1, after processing all MCUs
- // to flush any pending bits from state
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // Encoding perform as defined in ISO/IEC 10918-1.
- // Appendix A - Requirements and guidelines,
- // Annex G, G.1.2 - Progressive encoding procedures with Huffman.
- */
- IPPAPI(IppStatus, ippiEncodeHuffman8x8_ACFirst_JPEG_16s1u_C1, (
- const Ipp16s* pSrc,
- Ipp8u* pDst,
- int dstLenBytes,
- int* pDstCurrPos,
- int Ss,
- int Se,
- int Al,
- const IppiEncodeHuffmanSpec* pAcTable,
- IppiEncodeHuffmanState* pEncHuffState,
- int bFlushState))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiEncodeHuffman8x8_ACRefine_JPEG_16s1u_C1
- //
- // Purpose:
- // huffman encode AC coefficients from 8x8 block of quantized
- // DCT coefficients. Progressive coding, next scans
- //
- // Parameters:
- // pSrc - pointer to 8x8 block of quantized DCT coefficeints
- // pDst - pointer to output bitstream buffer
- // dstLenBytes - length of bitstream buffer
- // pDstCurrPos - current byte position in bitstream buffer
- // Ss - start of spectral selection
- // Se - end of spectral selection
- // Al - successive approximation bit position low
- // pAcTable - pointer to encoder huffman AC table
- // pEncHuffState - pointer to encoder huffman state
- // bFlushState - set to 1, after processing all MCUs
- // to flush any pending bits from state
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // Encoding perform as defined in ISO/IEC 10918-1.
- // Appendix A - Requirements and guidelines,
- // Annex G, G.1.2 - Progressive encoding procedures with Huffman.
- */
- IPPAPI(IppStatus, ippiEncodeHuffman8x8_ACRefine_JPEG_16s1u_C1, (
- const Ipp16s* pSrc,
- Ipp8u* pDst,
- int dstLenBytes,
- int* pDstCurrPos,
- int Ss,
- int Se,
- int Al,
- const IppiEncodeHuffmanSpec* pAcTable,
- IppiEncodeHuffmanState* pEncHuffState,
- int bFlushState))
- /* ///////////////////////////////////////////////////////////////////////////
- // Huffman Encoding Functions (Lossless)
- /////////////////////////////////////////////////////////////////////////// */
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiEncodeHuffmanOne_JPEG_16s1u_C1
- //
- // Purpose:
- // Huffman encode one lossless coefs
- //
- // Parameters:
- // pSrc pointer to input differences
- // pDst pointer to output JPEG bitstream
- // nDstLenBytes bitstream length, in bytes
- // pDstCurrPos pointer to current offset in buffer in bytes (in/out)
- // pEncHuffTable pointer to huffman lossless table
- // pEncHuffState pointer to Huffman state struct
- // bFlushState
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiEncodeHuffmanOne_JPEG_16s1u_C1, (
- const Ipp16s* pSrc,
- Ipp8u* pDst,
- int nDstLenBytes,
- int* pDstCurrPos,
- const IppiEncodeHuffmanSpec* pEncHuffTable,
- IppiEncodeHuffmanState* pEncHuffState,
- int bFlushState))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiEncodeHuffmanRow_JPEG_16s1u_P4C1
- //
- // Purpose:
- // Huffman encode mcu row
- //
- // Parameters:
- // pSrc pointer to input differences
- // pDst pointer to output JPEG bitstream
- // nDstLenBytes bitstream length, in bytes
- // pDstCurrPos pointer to current offset in buffer in bytes (in/out)
- // pEncHuffTable pointer to huffman lossless table
- // pEncHuffState pointer to Huffman state struct
- // bFlushState
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiEncodeHuffmanRow_JPEG_16s1u_P4C1, (
- const Ipp16s* pSrc[4],
- int nSrcLen,
- int nSrcRows,
- Ipp8u* pDst,
- int nDstLenBytes,
- int* pDstCurrPos,
- const IppiEncodeHuffmanSpec* pEncHuffTable[4],
- IppiEncodeHuffmanState* pEncHuffState,
- int bFlushState))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiGetHuffmanStatisticsOne_JPEG_16s_C1
- //
- // Purpose:
- // count statistics for huffman values for particular differences
- //
- // Parameters:
- // pSrc pointer to input differences
- // pHuffStatistics pointer to accumulated huffman values statistics
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiGetHuffmanStatisticsOne_JPEG_16s_C1, (
- const Ipp16s* pSrc,
- int pHuffStatistics[256]))
- /* ///////////////////////////////////////////////////////////////////////////
- // Huffman Decoding Functions (Baseline)
- /////////////////////////////////////////////////////////////////////////// */
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDecodeHuffmanSpecGetBufSize_JPEG_8u
- //
- // Purpose:
- // get size of IppiDecodeHuffmanSpec struct
- //
- // Parameters:
- // size - where write size of buffer
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiDecodeHuffmanSpecGetBufSize_JPEG_8u, (
- int* size))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDecodeHuffmanSpecInit_JPEG_8u
- //
- // Purpose:
- // Build Huffman table for decoder in fast-to-use format
- // from "raw" Huffman table
- //
- // Parameters:
- // pListBits - pointer to array of 16 bytes.
- // pListVals - pointer to array of up to 256 bytes.
- // pDecHuffSpec - pointer to Huffman table to be initialized
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // pListBits represents list of BITS and pListVals represent
- // list of HUFFVAL, as specified in ISO/IEC 10918-1, Figure B.7
- */
- IPPAPI(IppStatus, ippiDecodeHuffmanSpecInit_JPEG_8u, (
- const Ipp8u* pListBits,
- const Ipp8u* pListVals,
- IppiDecodeHuffmanSpec* pDecHuffSpec))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDecodeHuffmanSpecInitAlloc_JPEG_8u
- //
- // Purpose:
- // Build Huffman table for decoder in fast-to-use format
- // from raw Huffman table
- //
- // Parameters:
- // pListBits - pointer to array of 16 bytes.
- // pListVals - pointer to array of up to 256 bytes.
- // ppDecHuffSpec - pointer to pointer on Huffman table
- // to be allocated and initialized
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // pListBits represents list of BITS and pListVals represent
- // list of HUFFVAL, as specified in ISO/IEC 10918-1, Figure B.7
- */
- IPPAPI(IppStatus, ippiDecodeHuffmanSpecInitAlloc_JPEG_8u, (
- const Ipp8u* pListBits,
- const Ipp8u* pListVals,
- IppiDecodeHuffmanSpec** ppDecHuffSpec))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDecodeHuffmanSpecFree_JPEG_8u
- //
- // Purpose:
- // Free memory for decoder Huffman table
- //
- // Parameters:
- // pDecHuffSpec - pointer to Huffman table
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiDecodeHuffmanSpecFree_JPEG_8u, (
- IppiDecodeHuffmanSpec* pDecHuffSpec))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDecodeHuffmanStateGetBufSize_JPEG_8u
- //
- // Purpose:
- // get size of IppiDecodeHuffmanState struct
- //
- // Parameters:
- // size - where write size of buffer
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiDecodeHuffmanStateGetBufSize_JPEG_8u, (
- int* size))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDecodeHuffmanStateInit_JPEG_8u
- //
- // Purpose:
- // Build IppiDecodeHuffmanState struct for decoder
- //
- // Parameters:
- // pDecHuffState - pointer to IppiDecodeHuffmanState struct
- // to be initialized
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiDecodeHuffmanStateInit_JPEG_8u, (
- IppiDecodeHuffmanState* pDecHuffState))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDecodeHuffmanStateInitAlloc_JPEG_8u
- //
- // Purpose:
- // Allocate memory and build DecHuffState struct for encoder
- //
- // Parameters:
- // ppDecHuffState - pointer to pointer on EncHuffState struct
- // to be allocated and initialized
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiDecodeHuffmanStateInitAlloc_JPEG_8u, (
- IppiDecodeHuffmanState** ppDecHuffState))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDecodeHuffmanStateFree_JPEG_8u
- //
- // Purpose:
- // Free memory for decoder DecHuffState struct
- //
- // Parameters:
- // pDecHuffState - pointer to IppiDecodeHuffmanState struct
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiDecodeHuffmanStateFree_JPEG_8u, (
- IppiDecodeHuffmanState* pDecHuffState))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDecodeHuffman8x8_JPEG_1u16s_C1
- //
- // Purpose:
- // Huffman decode 8x8 block of quantized DCT coefficients
- //
- // Parameters:
- // pSrc pointer to input JPEG bitstream
- // srcLenBytes bitstream length, in bytes
- // pSrcCurrPos pointer to current byte offset in buffer (in/out)
- // pDst pointer to output 8x8 block of quantized DCT coefficients
- // pLastDC pointer to last DC coefficients from preivious block
- // of the same color component
- // pMarker where to store marker which can be found
- // pDcTable pointer to huffman DC table
- // pAcTable pointer to huffman AC table
- // pDecHuffState pointer to Huffman state struct
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // Decoding perform as specified in ISO/IEC 10918-1,
- // Appendix A - Requirements and guidelines,
- // Annex F, F.2.2 - Baseline Huffman Decoding procedures
- */
- IPPAPI(IppStatus, ippiDecodeHuffman8x8_JPEG_1u16s_C1, (
- const Ipp8u* pSrc,
- int srcLenBytes,
- int* pSrcCurrPos,
- Ipp16s* pDst,
- Ipp16s* pLastDC,
- int* pMarker,
- const IppiDecodeHuffmanSpec* pDcTable,
- const IppiDecodeHuffmanSpec* pAcTable,
- IppiDecodeHuffmanState* pDecHuffState))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDecodeHuffman8x8_Direct_JPEG_1u16s_C1
- //
- // Description:
- // Huffman decode 8x8 block of quantized DCT coefficients
- //
- // Parameters:
- // pSrc pointer to input JPEG bitstream
- // pSrcBitsLen the number of bits in bitstream (in/out)
- // pDst pointer to output 8x8 block of quantized
- // DCT coefficients
- // pLastDC pointer to last DC coefficients from preivious
- // block of the same color component
- // pMarker where to store marker which can be found
- // pPrefetchedBits prefetch buffer which contain the bits decoded
- // in the last time
- // pNumValidPrefetchedBits number of valid bits in prefetch buffer
- // pDcTable pointer to huffman DC table
- // pAcTable pointer to huffman AC table
- //
- // Note:
- // 1. pDCPred shall be 0 in initial or after each restart interval
- // 2. pMarker shall be 0 in initial or after it was processed
- // 3. pNumValidPrefetchedBits shall be 0 in following case
- // 1) Initial.
- // 2) After each restart interval.
- // 3) After each marker.
- //
- // Returns:
- // IppStatus
- */
- IPPAPI(IppStatus, ippiDecodeHuffman8x8_Direct_JPEG_1u16s_C1, (
- const Ipp8u* pSrc,
- int* pSrcBitsLen,
- Ipp16s* pDst,
- Ipp16s* pLastDC,
- int* pMarker,
- Ipp32u* pPrefetchedBits,
- int* pNumValidPrefetchedBits,
- const IppiDecodeHuffmanSpec* pDcTable,
- const IppiDecodeHuffmanSpec* pAcTable))
- /* ///////////////////////////////////////////////////////////////////////////
- // Huffman Decoding Functions (Progressive)
- /////////////////////////////////////////////////////////////////////////// */
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDecodeHuffman8x8_DCFirst_JPEG_1u16s_C1
- //
- // Purpose:
- // Huffman decode DC coefficient of 8x8 block of quantized DCT coefficients
- //
- // Parameters:
- // pSrc pointer to input JPEG bitstream
- // srcLenBytes bitstream length, in bytes
- // pSrcCurrPos pointer to current byte offset in buffer (in/out)
- // pDst pointer to output 8x8 block of quantized DCT coefficients
- // pLastDC pointer to last DC coefficients from preivious block
- // of the same color component
- // pMarker where to store JPEG marker
- // Al Approximation bit position low
- // pDcTable pointer to huffman DC table
- // pDecHuffState pointer to Huffman state struct
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // Decoding perform as defined in ISO/IEC 10918-1.
- // Appendix A - Requirements and guidelines,
- // Annex G, G.2 - Progressive decoding of the DCT.
- */
- IPPAPI(IppStatus, ippiDecodeHuffman8x8_DCFirst_JPEG_1u16s_C1, (
- const Ipp8u* pSrc,
- int srcLenBytes,
- int* pSrcCurrPos,
- Ipp16s* pDst,
- Ipp16s* pLastDC,
- int* pMarker,
- int Al,
- const IppiDecodeHuffmanSpec* pDcTable,
- IppiDecodeHuffmanState* pDecHuffState))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDecodeHuffman8x8_DCRefine_JPEG_1u16s_C1
- //
- // Purpose:
- // Refine DC coefficient of 8x8 block of quantized DCT coefficients
- //
- // Parameters:
- // pSrc pointer to input JPEG bitstream
- // srcLenBytes bitstream length, in bytes
- // pSrcCurrPos pointer to current byte offset in buffer (in/out)
- // pDst pointer to output 8x8 block of quantized DCT coefficients
- // pMarker where to store JPEG marker
- // Al Approximation bit position low
- // pDecHuffState pointer to Huffman state struct
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // Decoding perform as defined in ISO/IEC 10918-1.
- // Appendix A - Requirements and guidelines,
- // Annex G, G.2 - Progressive decoding of the DCT.
- */
- IPPAPI(IppStatus, ippiDecodeHuffman8x8_DCRefine_JPEG_1u16s_C1, (
- const Ipp8u* pSrc,
- int srcLenBytes,
- int* pSrcCurrPos,
- Ipp16s* pDst,
- int* pMarker,
- int Al,
- IppiDecodeHuffmanState* pDecHuffState))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDecodeHuffman8x8_ACFirst_JPEG_1u16s_C1
- //
- // Purpose:
- // Huffman decode AC coefficient of 8x8 block of quantized DCT coefficients
- //
- // Parameters:
- // pSrc pointer to input JPEG bitstream
- // srcLenBytes bitstream length, in bytes
- // pSrcCurrPos pointer to current byte offset in buffer (in/out)
- // pDst pointer to output 8x8 block of quantized DCT coefficients
- // pMarker where to store JPEG marker
- // Ss spectral selection start
- // Se spectral selection end
- // Al Approximation bit position low
- // pAcTable pointer to huffman AC table
- // pDecHuffState pointer to Huffman state struct
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // Decoding perform as defined in ISO/IEC 10918-1.
- // Appendix A - Requirements and guidelines,
- // Annex G, G.2 - Progressive decoding of the DCT.
- */
- IPPAPI(IppStatus, ippiDecodeHuffman8x8_ACFirst_JPEG_1u16s_C1, (
- const Ipp8u* pSrc,
- int srcLenBytes,
- int* pSrcCurrPos,
- Ipp16s* pDst,
- int* pMarker,
- int Ss,
- int Se,
- int Al,
- const IppiDecodeHuffmanSpec* pAcTable,
- IppiDecodeHuffmanState* pDecHuffState))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDecodeHuffman8x8_ACRefine_JPEG_1u16s_C1
- //
- // Purpose:
- // Refine AC coefficients of 8x8 block of quantized DCT coefficients
- //
- // Parameters:
- // pSrc pointer to input JPEG bitstream
- // srcLenBytes bitstream length, in bytes
- // pSrcCurrPos pointer to current byte offset in buffer (in/out)
- // pDst pointer to output 8x8 block of quantized DCT coefficients
- // pMarker where to store JPEG marker
- // Ss spectral selection start
- // Se spectral selection end
- // Al Approximation bit position low
- // pAcTable Huffman AC table
- // pDecHuffState pointer to Huffman state struct
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // Decoding perform as defined in ISO/IEC 10918-1.
- // Appendix A - Requirements and guidelines,
- // Annex G, G.2 - Progressive decoding of the DCT.
- */
- IPPAPI(IppStatus, ippiDecodeHuffman8x8_ACRefine_JPEG_1u16s_C1, (
- const Ipp8u* pSrc,
- int srcLenBytes,
- int* pSrcCurrPos,
- Ipp16s* pDst,
- int* pMarker,
- int Ss,
- int Se,
- int Al,
- const IppiDecodeHuffmanSpec* pAcTable,
- IppiDecodeHuffmanState* pDecHuffState))
- /* ///////////////////////////////////////////////////////////////////////////
- // Huffman Decoding Functions (Lossless)
- /////////////////////////////////////////////////////////////////////////// */
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDecodeHuffmanOne_JPEG_1u16s_C1
- //
- // Purpose:
- // Huffman decode one lossless coefs
- //
- // Parameters:
- // pSrc pointer to input JPEG bitstream
- // nSrcLenBytes bitstream length, in bytes
- // pSrcCurrPos pointer to current offset in buffer in bytes (in/out)
- // pDst pointer to decoded difference
- // pMarker where to store JPEG marker
- // pDecHuffTable pointer to huffman table
- // pDecHuffState pointer to Huffman state struct
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiDecodeHuffmanOne_JPEG_1u16s_C1, (
- const Ipp8u* pSrc,
- int nSrcLenBytes,
- int* pSrcCurrPos,
- Ipp16s* pDst,
- int* pMarker,
- const IppiDecodeHuffmanSpec* pDecHuffTable,
- IppiDecodeHuffmanState* pDecHuffState))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDecodeHuffmanRow_JPEG_1u16s_C1P4
- //
- // Purpose:
- // Huffman decode row of lossless coefficents
- //
- // Parameters:
- // pSrc pointer to input JPEG bitstream
- // nSrcLenBytes bitstream length, in bytes
- // pSrcCurrPos pointer to current offset in buffer in bytes (in/out)
- // pDst pointer to decoded difference
- // nDstLen number of mcus in row
- // nDstRows number of rows (actually color channels)
- // pMarker where to store JPEG marker
- // pDecHuffTable pointer to huffman table
- // pDecHuffState pointer to Huffman state struct
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiDecodeHuffmanRow_JPEG_1u16s_C1P4, (
- const Ipp8u* pSrc,
- int nSrcLenBytes,
- int* pSrcCurrPos,
- Ipp16s* pDst[4],
- int nDstLen,
- int nDstRows,
- int* pMarker,
- const IppiDecodeHuffmanSpec* pDecHuffTable[4],
- IppiDecodeHuffmanState* pDecHuffState))
- /* ///////////////////////////////////////////////////////////////////////////
- // Quantization Functions for encoder
- /////////////////////////////////////////////////////////////////////////// */
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiQuantFwdRawTableInit_JPEG_8u
- //
- // Purpose:
- // Adjust raw quantization table according quality factor
- //
- // Parameters:
- // pQuantRawTable - pointer to "raw" Quantization table
- // qualityFactor - JPEG quality factor (valid range 1...100)
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // "raw" quantization table is array of 64 bytes (Q0..Q63), as specified
- // in ISO/IEC 10918-1, Figure B.6
- */
- IPPAPI(IppStatus, ippiQuantFwdRawTableInit_JPEG_8u, (
- Ipp8u* pQuantRawTable,
- int qualityFactor))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiQuantFwdTableInit_JPEG_8u16u
- //
- // Purpose:
- // Build 8-bit precision Quantization table for encoder
- // in fast-to-use format from "raw" Quantization table
- //
- // Parameters:
- // pQuantRawTable - pointer to "raw" Quantization table
- // pQuantFwdTable - pointer to Quantization table to be initialized
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // "raw" quantization table is array of 64 bytes (Q0..Q63), as specified
- // in ISO/IEC 10918-1, Figure B.6 in zigzag order
- */
- IPPAPI(IppStatus, ippiQuantFwdTableInit_JPEG_8u16u, (
- const Ipp8u* pQuantRawTable,
- Ipp16u* pQuantFwdTable))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiQuantFwd8x8_JPEG_16s_C1I
- //
- // Purpose:
- // quantize 8x8 block of DCT coefficients
- //
- // Parameters:
- // pSrcDst - pointer to 8x8 block of DCT coefs
- // pQuantFwdTable - pointer to Quantization table
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // Quantization is defined in ISO/IEC 10918-1,
- // Appendix A - Requrements and guidelines,
- // Annex A, A.3.4 DCT coefficient quantization and dequantization.
- */
- IPPAPI(IppStatus, ippiQuantFwd8x8_JPEG_16s_C1I, (
- Ipp16s* pSrcDst,
- const Ipp16u* pQuantFwdTable))
- /* ///////////////////////////////////////////////////////////////////////////
- // Quantization Functions for decoder
- /////////////////////////////////////////////////////////////////////////// */
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiQuantInvTableInit_JPEG_8u16u
- //
- // Purpose:
- // Build Quantization table for decoder in fast-to-use format
- // from "raw" Quantization table
- //
- // Parameters:
- // pQuantRawTable - pointer to "raw" Quantization table
- // pQuantInvTable - pointer to Quantization table to be initialized
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // "raw" quantization table is array of 64 bytes (Q0..Q63), as specified
- // in ISO/IEC 10918-1, Figure B.6 in zigzag order
- */
- IPPAPI(IppStatus, ippiQuantInvTableInit_JPEG_8u16u, (
- const Ipp8u* pQuantRawTable,
- Ipp16u* pQuantInvTable))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiQuantInv8x8_JPEG_16s_C1I
- //
- // Purpose:
- // dequantize 8x8 block of DCT coefficients
- //
- // Parameters:
- // pSrcDst - pointer to 8x8 block of DCT coefficients
- // pQuantInvTable - pointer to Quantization table
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // Dequantization is defined in ISO/IEC 10918-1,
- // Appendix A - Requrements and guidelines,
- // Annex A, A.3.4 DCT coefficient quantization and dequantization.
- */
- IPPAPI(IppStatus, ippiQuantInv8x8_JPEG_16s_C1I, (
- Ipp16s* pSrcDst,
- const Ipp16u* pQuantInvTable))
- /* ///////////////////////////////////////////////////////////////////////////
- // Functions for color conversion for encoder
- /////////////////////////////////////////////////////////////////////////// */
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiRGBToY_JPEG_8u_P3C1R
- //
- // Purpose:
- // RGB to Y color conversion
- //
- // Parameter:
- // pSrcRGB pointer to pointers to the input data.
- // pSrc[0] is pointer to RR..RR plane
- // pSrc[1] is pointer to GG..GG plane, and
- // pSrc[2] is pointer to BB..BB plane
- // srcStep line offset in input data
- // pDstY pointer to the output data YY..YY
- // dstStep line offset in output data
- // roiSize ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // Y = 0.299*R + 0.587*G + 0.114*B
- */
- IPPAPI(IppStatus, ippiRGBToY_JPEG_8u_P3C1R, (
- const Ipp8u* pSrcRGB[3],
- int srcStep,
- Ipp8u* pDstY,
- int dstStep,
- IppiSize roiSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiRGBToY_JPEG_8u_C3C1R
- //
- // Purpose:
- // RGB to Y color conversion
- //
- // Parameter:
- // pSrcRGB pointer to the input data RGBRGB...RGBRGB
- // srcStep line offset in input data
- // pDstY pointer to the output data YY..YY
- // dstStep line offset in output data
- // roiSize ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // Y = 0.299*R + 0.587*G + 0.114*B
- //
- */
- IPPAPI(IppStatus, ippiRGBToY_JPEG_8u_C3C1R, (
- const Ipp8u* pSrcRGB,
- int srcStep,
- Ipp8u* pDstY,
- int dstStep,
- IppiSize roiSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiBGRToY_JPEG_8u_C3C1R
- //
- // Purpose:
- // BGR to Y color conversion
- //
- // Parameter:
- // pSrcBGR pointer to the input data BGRBGR...BGRBGR
- // srcStep line offset in input data
- // pDstY pointer to the output data YY..YY
- // dstStep line offset in output data
- // roiSize ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // Y = 0.299*R + 0.587*G + 0.114*B
- //
- */
- IPPAPI(IppStatus, ippiBGRToY_JPEG_8u_C3C1R, (
- const Ipp8u* pSrcBGR,
- int srcStep,
- Ipp8u* pDstY,
- int dstStep,
- IppiSize roiSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiRGBToYCbCr_JPEG_8u_P3R
- //
- // Purpose:
- // RGB to YCbCr color conversion
- //
- // Parameter:
- // pSrcRGB pointer to pointers to the input data.
- // pSrc[0] is pointer to RR..RR plane
- // pSrc[1] is pointer to GG..GG plane, and
- // pSrc[2] is pointer to BB..BB plane
- // srcStep line offset in input data
- // pDstYCbCr pointer to pointers to the output data.
- // pDst[0] is pointer to YY..YY plane
- // pDst[1] is pointer to CbCb..CbCb plane, and
- // pDst[2] is pointer to CrCr..CrCr plane
- // dstStep line offset in output data
- // roiSize ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // Y = 0.29900*R + 0.58700*G + 0.11400*B
- // Cb = -0.16874*R - 0.33126*G + 0.50000*B + 128
- // Cr = 0.50000*R - 0.41869*G - 0.08131*B + 128
- */
- IPPAPI(IppStatus, ippiRGBToYCbCr_JPEG_8u_P3R, (
- const Ipp8u* pSrcRGB[3],
- int srcStep,
- Ipp8u* pDstYCbCr[3],
- int dstStep,
- IppiSize roiSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiRGBToYCbCr_JPEG_8u_C3P3R
- //
- // Purpose:
- // RGB to YCbCr color conversion
- //
- // Parameter:
- // pSrcRGB pointer to input data RGBRGB..RGBRGB
- // srcStep line offset in input data
- // pDstYCbCr pointer to pointers to the output data.
- // pDstYCbCr[0] is pointer to YY..YY plane
- // pDstYCbCr[1] is pointer to CbCb..CbCb plane, and
- // pDstYCbCr[2] is pointer to CrCr..CrCr plane
- // dstStep line offset in output data
- // roiSize ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // Y = 0.29900*R + 0.58700*G + 0.11400*B
- // Cb = -0.16874*R - 0.33126*G + 0.50000*B + 128
- // Cr = 0.50000*R - 0.41869*G - 0.08131*B + 128
- */
- IPPAPI(IppStatus, ippiRGBToYCbCr_JPEG_8u_C3P3R, (
- const Ipp8u* pSrcRGB,
- int srcStep,
- Ipp8u* pDstYCbCr[3],
- int dstStep,
- IppiSize roiSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiBGRToYCbCr_JPEG_8u_C3P3R
- //
- // Purpose:
- // BGR to YCbCr color conversion
- //
- // Parameter:
- // pSrcBGR pointer to input data BGRBGR..BGRBGR
- // srcStep line offset in input data
- // pDstYCbCr pointer to pointers to the output data.
- // pDstYCbCr[0] is pointer to YY..YY plane
- // pDstYCbCr[1] is pointer to CbCb..CbCb plane, and
- // pDstYCbCr[2] is pointer to CrCr..CrCr plane
- // dstStep line offset in output data
- // roiSize ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // the color conversion equations:
- // Y = 0.29900*R + 0.58700*G + 0.11400*B
- // Cb = -0.16874*R - 0.33126*G + 0.50000*B + 128.0
- // Cr = 0.50000*R - 0.41869*G - 0.08131*B + 128.0
- */
- IPPAPI(IppStatus, ippiBGRToYCbCr_JPEG_8u_C3P3R, (
- const Ipp8u* pSrcBGR,
- int srcStep,
- Ipp8u* pDstYCbCr[3],
- int dstStep,
- IppiSize roiSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiRGB555ToYCbCr_JPEG_16u8u_C3P3R
- //
- // Purpose:
- // RGB555 to YCbCr color convert
- //
- // Parameter:
- // pSrcRGB pointer to input data
- // srcStep line offset in input data
- // pDstYCbCr pointer to pointers to output data
- // dstStep line offset in output data
- // roiSize ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // the color conversion equations:
- // Y = 0.29900*R + 0.58700*G + 0.11400*B
- // Cb = -0.16874*R - 0.33126*G + 0.50000*B + 128.0
- // Cr = 0.50000*R - 0.41869*G - 0.08131*B + 128.0
- //
- // pixel format
- // 15 8 7 0
- // |xbbbbbgg|gggrrrrr|
- //
- */
- IPPAPI(IppStatus, ippiRGB555ToYCbCr_JPEG_16u8u_C3P3R, (
- const Ipp16u* pSrcRGB,
- int srcStep,
- Ipp8u* pDstYCbCr[3],
- int dstStep,
- IppiSize roiSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiBGR555ToYCbCr_JPEG_16u8u_C3P3R
- //
- // Purpose:
- // BGR555 to YCbCr color convert
- //
- // Parameter:
- // pSrcBGR pointer to input data
- // srcStep line offset in input data
- // pDstYCbCr pointer to pointers to output data
- // dstStep line offset in output data
- // roiSize ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // the color conversion equations:
- // Y = 0.29900*R + 0.58700*G + 0.11400*B
- // Cb = -0.16874*R - 0.33126*G + 0.50000*B + 128.0
- // Cr = 0.50000*R - 0.41869*G - 0.08131*B + 128.0
- //
- // pixel format
- // 15 8 7 0
- // |xrrrrrgg|gggbbbbb|
- //
- */
- IPPAPI(IppStatus, ippiBGR555ToYCbCr_JPEG_16u8u_C3P3R, (
- const Ipp16u* pSrcBGR,
- int srcStep,
- Ipp8u* pDstYCbCr[3],
- int dstStep,
- IppiSize roiSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiRGB565ToYCbCr_JPEG_16u8u_C3P3R
- //
- // Purpose:
- // RGB565 to YCbCr color convert
- //
- // Parameter:
- // pSrcRGB pointer to input data
- // srcStep line offset in input data
- // pDstYCbcr pointer to pointers to output data
- // dstStep line offset in output data
- // roiSize ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // the color conversion equations:
- // Y = 0.29900*R + 0.58700*G + 0.11400*B
- // Cb = -0.16874*R - 0.33126*G + 0.50000*B + 128.0
- // Cr = 0.50000*R - 0.41869*G - 0.08131*B + 128.0
- //
- // pixel format
- // 15 8 7 0
- // |rrrrrggg|gggbbbbb|
- //
- */
- IPPAPI(IppStatus, ippiRGB565ToYCbCr_JPEG_16u8u_C3P3R, (
- const Ipp16u* pSrcRGB,
- int srcStep,
- Ipp8u* pDstYCbCr[3],
- int dstStep,
- IppiSize roiSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiBGR565ToYCbCr_JPEG_16u8u_C3P3R
- //
- // Purpose:
- // BGR565 to YCbCr color convert
- //
- // Parameter:
- // pSrcBGR pointer to input data
- // srcStep line offset in input data
- // pDstYCbCr pointer to pointers to output data
- // dstStep line offset in output data
- // roiSize ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // the color conversion equations:
- // Y = 0.29900*R + 0.58700*G + 0.11400*B
- // Cb = -0.16874*R - 0.33126*G + 0.50000*B + 128.0
- // Cr = 0.50000*R - 0.41869*G - 0.08131*B + 128.0
- //
- // pixel format
- // 15 8 7 0
- // |bbbbbggg|gggrrrrr|
- //
- */
- IPPAPI(IppStatus, ippiBGR565ToYCbCr_JPEG_16u8u_C3P3R, (
- const Ipp16u* pSrc,
- int srcStep,
- Ipp8u* pDst[3],
- int dstStep,
- IppiSize roiSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiCMYKToYCCK_JPEG_8u_P4R
- //
- // Purpose:
- // CMYK to YCCK color conversion
- //
- // Parameter:
- // pSrcCMYK pointer to pointers to the input data.
- // pSrc[0] is pointer to CC..CC plane
- // pSrc[1] is pointer to MM..MM plane, and
- // pSrc[2] is pointer to YY..YY plane
- // pSrc[3] is pointer to KK..KK plane
- // srcStep line offset in input data
- // pDstYCCK pointer to pointers to output arrays
- // pDst[0] is pointer to YY..YY plane
- // pDst[1] is pointer to CC..CC plane, and
- // pDst[2] is pointer to CC..CC plane
- // pDst[3] is pointer to KK..KK plane
- // dstStep line offset in output data
- // roiSize ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // This version handles Adobe-style CMYK->YCCK conversion,
- // where R = 1-C, G = 1-M, and B = 1-Y are converted to YCbCr,
- // while K (black) channel is unchanged.
- */
- IPPAPI(IppStatus, ippiCMYKToYCCK_JPEG_8u_P4R, (
- const Ipp8u* pSrcCMYK[4],
- int srcStep,
- Ipp8u* pDstYCCK[4],
- int dstStep,
- IppiSize roiSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiCMYKToYCCK_JPEG_8u_C4P4R
- //
- // Purpose:
- // CMYK to YCCK color conversion
- //
- // Parameter:
- // pSrcCMYK pointer to input data CMYKCMYK..CMYKCMYK
- // srcStep line offset in input data
- // pDstYCCK pointer to pointers to output arrays
- // pDst[0] is pointer to YY..YY plane
- // pDst[1] is pointer to CC..CC plane, and
- // pDst[2] is pointer to CC..CC plane
- // pDst[3] is pointer to KK..KK plane
- // dstStep line offset in output data
- // roiSize ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // This version handles Adobe-style CMYK->YCCK conversion,
- // where R = 1-C, G = 1-M, and B = 1-Y are converted to YCbCr,
- // while K (black) channel is unchanged.
- */
- IPPAPI(IppStatus, ippiCMYKToYCCK_JPEG_8u_C4P4R, (
- const Ipp8u* pSrcCMYK,
- int srcStep,
- Ipp8u* pDstYCCK[4],
- int dstStep,
- IppiSize roiSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Shift level functions for encoder/decoder
- /////////////////////////////////////////////////////////////////////////// */
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiSub128_JPEG_8u16s_C1R
- //
- // Purpose:
- // convert image data from unsigned 8-bit integer to signed 16-bit
- //
- // Parameter:
- // pSrc pointer to input data
- // srcStep line offset in input data
- // pDst pointer to output data
- // dstStep line offset in output data
- // roiSize ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // Level Shift is defined in ISO/IEC 10918-1,
- // Appendix A - Requrements and guidelines, Annex A, A.3.1 - Level Shift.
- */
- IPPAPI(IppStatus, ippiSub128_JPEG_8u16s_C1R, (
- const Ipp8u* pSrc,
- int srcStep,
- Ipp16s* pDst,
- int dstStep,
- IppiSize roiSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiAdd128_JPEG_16s8u_C1R
- //
- // Purpose:
- // convert image data from signed 16-bit to unsigned 8-bit integer
- //
- // Parameter:
- // pSrc pointer to input data
- // srcStep line offset in input data
- // pDst pointer to output data
- // dstStep line offset in output data
- // roiSize ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // Level Shift is defined in ISO/IEC 10918-1,
- // Appendix A - Requrements and guidelines, Annex A, A.3.1 - Level Shift.
- */
- IPPAPI(IppStatus, ippiAdd128_JPEG_16s8u_C1R, (
- const Ipp16s* pSrc,
- int srcStep,
- Ipp8u* pDst,
- int dstStep,
- IppiSize roiSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Downsampling functions for encoder
- /////////////////////////////////////////////////////////////////////////// */
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiSampleDownH2V1_JPEG_8u_C1R
- //
- // Purpose:
- // Sample down by horizontal 2:1
- //
- // Parameters:
- // pSrc - pointer to source data to be sampled down
- // srcStep - line offset in input data
- // srcSize - ROI size
- // pDst - pointer to sampled down output data
- // dstStep - line offset in input data
- // dstSize - ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiSampleDownH2V1_JPEG_8u_C1R, (
- const Ipp8u* pSrc,
- int srcStep,
- IppiSize srcRoiSize,
- Ipp8u* pDst,
- int dstStep,
- IppiSize dstRoiSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiSampleDownH2V2_JPEG_8u_C1R
- //
- // Purpose:
- // Sample down by horizontal 2:1 and vertical 2:1
- //
- // Parameters:
- // pSrc - pointer to source data to be sampled down
- // srcStep - line offset in input data
- // srcSize - ROI size
- // pDst - pointer to sampled down output data
- // dstStep - line offset in input data
- // dstSize - ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiSampleDownH2V2_JPEG_8u_C1R, (
- const Ipp8u* pSrc,
- int srcStep,
- IppiSize srcRoiSize,
- Ipp8u* pDst,
- int dstStep,
- IppiSize dstRoiSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiSampleDownRowH2V1_Box_JPEG_8u_C1
- //
- // Purpose:
- // Sample down by horizontal 2:1
- //
- // Parameters:
- // pSrc - pointer to source row
- // srcWidth - width of source row
- // pDst - pointer to sampled down output row
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // Downsampling is performed as simple "Box" filter
- */
- IPPAPI(IppStatus, ippiSampleDownRowH2V1_Box_JPEG_8u_C1, (
- const Ipp8u* pSrc,
- int srcWidth,
- Ipp8u* pDst))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiSampleDownRowH2V2_Box_JPEG_8u_C1
- //
- // Purpose:
- // Sample down by horizontal 2:1 and vertical 2:1
- //
- // Parameters:
- // pSrc1 - pointer to the source row
- // pSrc2 - pointer to the next(adjacent) row
- // srcWidth - width of source rows
- // pDst - pointer to sampled down output row
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // Downsampling is performed as simple "Box" filter
- */
- IPPAPI(IppStatus, ippiSampleDownRowH2V2_Box_JPEG_8u_C1, (
- const Ipp8u* pSrc1,
- const Ipp8u* pSrc2,
- int srcWidth,
- Ipp8u* pDst))
- /* ///////////////////////////////////////////////////////////////////////////
- // Upsampling functions for decoder
- /////////////////////////////////////////////////////////////////////////// */
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiSampleUpH2V1_JPEG_8u_C1R
- //
- // Purpose:
- // sample up horizontally 1:2
- //
- // Parameters:
- // pSrc - pointer to source data to be sampled up
- // srcStep - line offset in input data
- // srcSize - ROI size
- // pDst - pointer to sampled up output data
- // dstStep - line offset in input data
- // dstSize - ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // Triangle filter used there (3/4 * nearer pixel + 1/4 * further pixel),
- // so we need leftmost and rightmost values outside the data boundary.
- */
- IPPAPI(IppStatus, ippiSampleUpH2V1_JPEG_8u_C1R, (
- const Ipp8u* pSrc,
- int srcStep,
- IppiSize srcRoiSize,
- Ipp8u* pDst,
- int dstStep,
- IppiSize dstRoiSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiSampleUpH2V2_JPEG_8u_C1R
- //
- // Purpose:
- // sample up horizontally 1:2 and vertically 1:2
- //
- // Parameters:
- // pSrc - pointer to source data to be sampled up
- // srcStep - line offset in input data
- // srcSize - ROI size
- // pDst - pointer to sampled up output data
- // dstStep - line offset in input data
- // dstSize - ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // Triangle filter used there (3/4 * nearer pixel + 1/4 * further pixel),
- // so we need leftmost and rightmost, bottommost and topmost values
- // outside the data boundary.
- */
- IPPAPI(IppStatus, ippiSampleUpH2V2_JPEG_8u_C1R, (
- const Ipp8u* pSrc,
- int srcStep,
- IppiSize srcRoiSize,
- Ipp8u* pDst,
- int dstStep,
- IppiSize dstRoiSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiSampleUpRowH2V1_Triangle_JPEG_8u_C1
- //
- // Purpose:
- // sample up horizontally 1:2
- //
- // Parameters:
- // pSrc - pointer to the source row
- // srcWidth - width of source row
- // pDst - pointer to sampled up output row
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // Triangle filter used there (3/4 * nearer pixel + 1/4 * further pixel)
- */
- IPPAPI(IppStatus, ippiSampleUpRowH2V1_Triangle_JPEG_8u_C1, (
- const Ipp8u* pSrc,
- int srcWidth,
- Ipp8u* pDst))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiSampleUpRowH2V2_Triangle_JPEG_8u_C1
- //
- // Purpose:
- // sample up horizontally 1:2 and vertically 1:2
- //
- // Parameters:
- // pSrc1 - pointer to the source row
- // pSrc2 - pointer to the next(adjacent) source row
- // srcWidth - width of source rows
- // pDst - pointer to sampled up output row
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // Triangle filter used there (3/4 * nearer pixel + 1/4 * further pixel),
- */
- IPPAPI(IppStatus, ippiSampleUpRowH2V2_Triangle_JPEG_8u_C1, (
- const Ipp8u* pSrc1,
- const Ipp8u* pSrc2,
- int srcWidth,
- Ipp8u* pDst))
- /* ///////////////////////////////////////////////////////////////////////////
- // Sampling and color conversion functions for encoder
- /////////////////////////////////////////////////////////////////////////// */
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiRGBToYCbCr444LS_MCU_8u16s_C3P3R
- //
- // Purpose:
- // RGB to YCbCr color conversion, 444 downsampling and level shift (-128)
- // This routine handles one 1:1:1 MCU of interleaved RGB data
- // (lines separated by srcStep) and generates a full color converted MCU
- // (i.e., one 8x8 luminance block and two 8x8 chrominance blocks).
- //
- // Input data is in the order:
- // RGB,RGB,...,RGB
- // 0 8 srcStep
- // 0 +-------+-------------------+
- // | | |
- // | | |
- // | | |
- // 8 +-------+-------------------+
- //
- // Output data is in the order:
- // Y block, Cb block, Cr block
- //
- // 0 8 0 8 0 8
- // 0 +-------+ +-------+ +-------+
- // | | | | | |
- // | Y | | Cb | | Cr |
- // | | | | | |
- // 8 +-------+ +-------+ +-------+
- //
- // Parameter:
- // pSrcRGB pointer to input data, RGBRGB..RGBRGB
- // srcStep line offset in input data
- // pDstMCU pointer to output MCU.
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // the color conversion equations:
- // Y = 0.29900*R + 0.58700*G + 0.11400*B - 128
- // Cb = -0.16874*R - 0.33126*G + 0.50000*B
- // Cr = 0.50000*R - 0.41869*G - 0.08131*B
- // Level Shift is defined in ISO/IEC 10918-1,
- // Appendix A - Requrements and guidelines, Annex A, A.3.1 - Level Shift.
- */
- IPPAPI(IppStatus, ippiRGBToYCbCr444LS_MCU_8u16s_C3P3R, (
- const Ipp8u* pSrcRGB,
- int srcStep,
- Ipp16s* pDstMCU[3]))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiRGBToYCbCr422LS_MCU_8u16s_C3P3R
- //
- // Purpose:
- // RGB to YCbCr color conversion, 422 downsampling and level shift (-128)
- // This routine handles one 4:2:2 MCU of interleaved RGB data
- // (lines separated by srcStep) and generates a full color converted MCU
- // (i.e., two 8x8 luminance blocks and two 8x8 chrominance blocks).
- //
- // Input data is in the order:
- // RGB,RGB,...,RGB
- //
- // 0 15 srcStep
- // 0 +---------------+-------+
- // | | |
- // | | |
- // | | |
- // 8 +---------------+-------+
- //
- // Output data is in the order:
- // Y1 block, Y2 block, Cb block, Cr block.
- //
- // 0 8 15 0 8 0 8
- // 0 +-------+-------+ 0 +-------+ +-------+
- // | | | | | | |
- // | Y1 | Y2 | | Cb | | Cr |
- // | | | | | | |
- // 8 +-------+-------+ 8 +-------+ +-------+
- //
- // Downsampling is done via averaging. For the above example,
- // the Cb and Cr blocks would each use an average of 2 pixels
- // horizonatally to get 1 pixel into the output blocks.
- //
- // Parameter:
- // pSrcRGB pointer to input data
- // srcStep line offset in input data
- // pDstMCU pointer to output array
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // the color conversion equations:
- // Y = 0.29900*R + 0.58700*G + 0.11400*B - 128
- // Cb = -0.16874*R - 0.33126*G + 0.50000*B
- // Cr = 0.50000*R - 0.41869*G - 0.08131*B
- // Level Shift is defined in ISO/IEC 10918-1,
- // Appendix A - Requrements and guidelines, Annex A, A.3.1 - Level Shift.
- */
- IPPAPI(IppStatus, ippiRGBToYCbCr422LS_MCU_8u16s_C3P3R, (
- const Ipp8u* pSrcRGB,
- int srcStep,
- Ipp16s* pDstMCU[3]))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiRGBToYCbCr411LS_MCU_8u16s_C3P3R
- //
- // Purpose:
- // RGB to YCbCr color conversion, 411 downsampling and level shift (-128)
- // This routine handles one 4:1:1 MCU of interleaved RGB data
- // (lines separated by srcStep) and generates a full color converted MCU
- // (i.e., four 8x8 luminance blocks and two 8x8 chrominance blocks).
- //
- // Input data is in the order:
- // RGB,RGB,...,RGB
- //
- // 0 15 srcStep
- // 0 +---------------+-------+
- // | | |
- // | | |
- // | | |
- // | | |
- // | | |
- // | | |
- // | | |
- // 15 +---------------+-------+
- //
- // Output data is in the order:
- // Y1 block, Y2 block, Y3 block, Y4 block,
- // Cb block, Cr block,
- //
- // 0 8 15 0 8 0 8
- // 0 +-------+--------+ +--------+ +--------+
- // | | | | | | |
- // | Y1 | Y2 | | Cb | | Cr |
- // | | | | | | |
- // 8 +-------+--------+ +--------+ +--------+
- // | | |
- // | Y3 | Y4 |
- // | | |
- // 15 +-------+--------+
- //
- // Downsampling is done via averaging. For the above example,
- // the Cb and Cr blocks would each use an average of 4 pixels
- // to get 1 pixel into the output blocks.
- //
- // Parameter:
- // pSrcRGB pointer to input data
- // srcStep line offset in input data
- // pDstMCU pointer to output array
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // the color conversion equations:
- // Y = 0.29900*R + 0.58700*G + 0.11400*B - 128
- // Cb = -0.16874*R - 0.33126*G + 0.50000*B
- // Cr = 0.50000*R - 0.41869*G - 0.08131*B
- // Level Shift is defined in ISO/IEC 10918-1,
- // Appendix A - Requrements and guidelines, Annex A, A.3.1 - Level Shift.
- */
- IPPAPI(IppStatus, ippiRGBToYCbCr411LS_MCU_8u16s_C3P3R, (
- const Ipp8u* pSrcRGB,
- int srcStep,
- Ipp16s* pDstMCU[3]))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiBGRToYCbCr444LS_MCU_8u16s_C3P3R
- //
- // Purpose:
- // BGR to YCbCr color conversion, 444 downsampling and level shift (-128)
- // This routine handles one 1:1:1 MCU of interleaved BGR data
- // (lines separated by srcStep) and generates a full color converted MCU
- // (i.e., one 8x8 luminance block and two 8x8 chrominance blocks).
- //
- // Input data is in the order:
- // BGR,BGR,...,BGR
- // 0 8 srcStep
- // 0 +-------+-------------------+
- // | | |
- // | | |
- // | | |
- // 8 +-------+-------------------+
- //
- // Output data is in the order:
- // Y block, Cb block, Cr block
- //
- // 0 8 0 8 0 8
- // 0 +-------+ +-------+ +-------+
- // | | | | | |
- // | Y | | Cb | | Cr |
- // | | | | | |
- // 8 +-------+ +-------+ +-------+
- //
- // Parameter:
- // pSrcBGR pointer to input data, RGBRGB..RGBRGB
- // srcStep line offset in input data
- // pDstMCU pointer to output MCU.
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // the color conversion equations:
- // Y = 0.29900*R + 0.58700*G + 0.11400*B - 128
- // Cb = -0.16874*R - 0.33126*G + 0.50000*B
- // Cr = 0.50000*R - 0.41869*G - 0.08131*B
- // Level Shift is defined in ISO/IEC 10918-1,
- // Appendix A - Requirements and guidelines, Annex A, A.3.1 - Level Shift.
- */
- IPPAPI(IppStatus, ippiBGRToYCbCr444LS_MCU_8u16s_C3P3R, (
- const Ipp8u* pSrcBGR,
- int srcStep,
- Ipp16s* pDstMCU[3]))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiBGRToYCbCr422LS_MCU_8u16s_C3P3R
- //
- // Purpose:
- // BGR to YCbCr color conversion, 422 downsampling and level shift (-128)
- // This routine handles one 4:2:2 MCU of interleaved BGR data
- // (lines separated by srcStep) and generates a full color converted MCU
- // (i.e., two 8x8 luminance blocks and two 8x8 chrominance blocks).
- //
- // Input data is in the order:
- // BGR,BGR,...,BGR
- //
- // 0 15 srcStep
- // 0 +---------------+-------+
- // | | |
- // | | |
- // | | |
- // 8 +---------------+-------+
- //
- // Output data is in the order:
- // Y1 block, Y2 block, Cb block, Cr block.
- //
- // 0 8 15 0 8 0 8
- // 0 +-------+-------+ 0 +-------+ +-------+
- // | | | | | | |
- // | Y1 | Y2 | | Cb | | Cr |
- // | | | | | | |
- // 8 +-------+-------+ 8 +-------+ +-------+
- //
- // Downsampling is done via averaging. For the above example,
- // the Cb and Cr blocks would each use an average of 2 pixels
- // horizonatally to get 1 pixel into the output blocks.
- //
- // Parameter:
- // pSrcBGR pointer to input data
- // srcStep line offset in input data
- // pDstMCU pointer to output array
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // the color conversion equations:
- // Y = 0.29900*R + 0.58700*G + 0.11400*B - 128
- // Cb = -0.16874*R - 0.33126*G + 0.50000*B
- // Cr = 0.50000*R - 0.41869*G - 0.08131*B
- // Level Shift is defined in ISO/IEC 10918-1,
- // Appendix A - Requrements and guidelines, Annex A, A.3.1 - Level Shift.
- */
- IPPAPI(IppStatus, ippiBGRToYCbCr422LS_MCU_8u16s_C3P3R, (
- const Ipp8u* pSrcBGR,
- int srcStep,
- Ipp16s* pDstMCU[3]))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiBGRToYCbCr411LS_MCU_8u16s_C3P3R
- //
- // Purpose:
- // BGR to YCbCr color conversion, 411 downsampling and level shift (-128)
- // This routine handles one 4:1:1 MCU of interleaved BGR data
- // (lines separated by srcStep) and generates a full color converted MCU
- // (i.e., four 8x8 luminance blocks and two 8x8 chrominance blocks).
- //
- // Input data is in the order:
- // BGR,BGR,...,BGR
- //
- // 0 15 srcStep
- // 0 +---------------+-------+
- // | | |
- // | | |
- // | | |
- // | | |
- // | | |
- // | | |
- // | | |
- // 15 +---------------+-------+
- //
- // Output data is in the order:
- // Y1 block, Y2 block, Y3 block, Y4 block,
- // Cb block, Cr block,
- //
- // 0 8 15 0 8 0 8
- // 0 +-------+--------+ +--------+ +--------+
- // | | | | | | |
- // | Y1 | Y2 | | Cb | | Cr |
- // | | | | | | |
- // 8 +-------+--------+ +--------+ +--------+
- // | | |
- // | Y3 | Y4 |
- // | | |
- // 15 +-------+--------+
- //
- // Downsampling is done via averaging. For the above example,
- // the Cb and Cr blocks would each use an average of 4 pixels
- // to get 1 pixel into the output blocks.
- //
- // Parameter:
- // pSrcBGR pointer to input data
- // srcStep line offset in input data
- // pDstMCU pointer to output array
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // the color conversion equations:
- // Y = 0.29900*R + 0.58700*G + 0.11400*B - 128
- // Cb = -0.16874*R - 0.33126*G + 0.50000*B
- // Cr = 0.50000*R - 0.41869*G - 0.08131*B
- // Level Shift is defined in ISO/IEC 10918-1,
- // Appendix A - Requrements and guidelines, Annex A, A.3.1 - Level Shift.
- */
- IPPAPI(IppStatus, ippiBGRToYCbCr411LS_MCU_8u16s_C3P3R, (
- const Ipp8u* pSrcBGR,
- int srcStep,
- Ipp16s* pDstMCU[3]))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiSampleDown444LS_MCU_8u16s_C3P3R
- //
- // Purpose:
- // No color conversion, 444 downsampling and level shift (-128)
- // This routine handles one 1:1:1 MCU of interleaved data
- // (lines separated by srcStep) and generates a full MCU
- // (i.e., one 8x8 block of Ch1 and two 8x8 blocks of Ch2 and Ch3).
- //
- // Input data is in the order:
- // Ch1Ch2Ch3,...,Ch1Ch2Ch3
- // 0 8 srcStep
- // 0 +-------+-------------------+
- // | | |
- // | | |
- // | | |
- // 8 +-------+-------------------+
- //
- // Output data is in the order:
- // Ch1 block, Ch2 block, Ch3 block
- //
- // 0 8 0 8 0 8
- // 0 +-------+ +-------+ +-------+
- // | | | | | |
- // | | | | | |
- // | | | | | |
- // 8 +-------+ +-------+ +-------+
- //
- // Parameter:
- // pSrc pointer to input data
- // srcStep line offset in input data
- // pDstMCU pointer to output MCU.
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // Level Shift is defined in ISO/IEC 10918-1,
- // Appendix A - Requirements and guidelines, Annex A, A.3.1 - Level Shift.
- */
- IPPAPI(IppStatus, ippiSampleDown444LS_MCU_8u16s_C3P3R, (
- const Ipp8u* pSrc,
- int srcStep,
- Ipp16s* pDstMCU[3]))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiSampleDown422LS_MCU_8u16s_C3P3R
- //
- // Purpose:
- // No color conversion, 422 downsampling and level shift (-128)
- // This routine handles one 4:2:2 MCU of interleaved data
- // (lines separated by srcStep) and generates a full MCU
- // (i.e., two 8x8 blocks of Ch1 and two 8x8 blocks of Ch2 and Ch3).
- //
- // Input data is in the order:
- // Ch1Ch2Ch3,,...,Ch1Ch2Ch3
- //
- // 0 15 srcStep
- // 0 +---------------+-------+
- // | | |
- // | | |
- // | | |
- // 8 +---------------+-------+
- //
- // Output data is in the order:
- // Ch1 block, Ch1 block, Ch2 block, Ch3 block.
- //
- // 0 8 15 0 8 0 8
- // 0 +-------+-------+ 0 +-------+ +-------+
- // | | | | | | |
- // | | | | | | |
- // | | | | | | |
- // 8 +-------+-------+ 8 +-------+ +-------+
- //
- // Downsampling is done via averaging. For the above example,
- // the Cb and Cr blocks would each use an average of 2 pixels
- // horizonatally to get 1 pixel into the output blocks.
- //
- // Parameter:
- // pSrc pointer to input data
- // srcStep line offset in input data
- // pDstMCU pointer to output array
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // Level Shift is defined in ISO/IEC 10918-1,
- // Appendix A - Requrements and guidelines, Annex A, A.3.1 - Level Shift.
- */
- IPPAPI(IppStatus, ippiSampleDown422LS_MCU_8u16s_C3P3R, (
- const Ipp8u* pSrc,
- int srcStep,
- Ipp16s* pDstMCU[3]))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiSampleDown411LS_MCU_8u16s_C3P3R
- //
- // Purpose:
- // No color conversion, 411 downsampling and level shift (-128)
- // This routine handles one 4:1:1 MCU of interleaved data
- // (lines separated by srcStep) and generates a full MCU
- // (i.e., four 8x8 blocks of Ch1 and two 8x8 blocks of Ch2 and Ch3).
- //
- // Input data is in the order:
- // Ch1Ch2Ch3,,...,Ch1Ch2Ch3
- //
- // 0 15 srcStep
- // 0 +---------------+-------+
- // | | |
- // | | |
- // | | |
- // | | |
- // | | |
- // | | |
- // | | |
- // 15 +---------------+-------+
- //
- // Output data is in the order:
- // Ch1 block, Ch1 block, Ch1 block, Ch1 block,
- // Ch2 block, Ch3 block,
- //
- // 0 8 15 0 8 0 8
- // 0 +-------+--------+ +--------+ +--------+
- // | | | | | | |
- // | ch1 | ch1 | | ch2 | | ch3 |
- // | | | | | | |
- // 8 +-------+--------+ +--------+ +--------+
- // | | |
- // | ch1 | ch1 |
- // | | |
- // 15 +-------+--------+
- //
- // Downsampling is done via averaging. For the above example,
- // the Ch2 and Ch3 blocks would each use an average of 4 pixels
- // to get 1 pixel into the output blocks.
- //
- // Parameter:
- // pSrc pointer to input data
- // srcStep line offset in input data
- // pDstMCU pointer to output array
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // Level Shift is defined in ISO/IEC 10918-1,
- // Appendix A - Requirements and guidelines, Annex A, A.3.1 - Level Shift.
- */
- IPPAPI(IppStatus, ippiSampleDown411LS_MCU_8u16s_C3P3R, (
- const Ipp8u* pSrc,
- int srcStep,
- Ipp16s* pDstMCU[3]))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiSplit422LS_MCU_8u16s_C2P3R
- //
- // Purpose:
- // No color conversion, no up-sampling,
- // only pixel to planar transformation and level shift (+128)
- // for one MCU
- //
- // Parameter:
- // pSrc pointer to input data
- // srcStep line offset in output data
- // pDstMCU pointer to pointers to output data
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- */
- IPPAPI(IppStatus,ippiSplit422LS_MCU_8u16s_C2P3R,(
- const Ipp8u* pSrc,
- int srcStep,
- Ipp16s* pDstMCU[3]))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiCMYKToYCCK444LS_MCU_8u16s_C4P4R
- //
- // Purpose:
- // CMYK to YCCK color conversion, 444 downsampling and level shift (-128)
- // This routine handles one 1:1:1:1 MCU of interleaved CMYK data
- // (lines separated by srcStep) and generates a full color converted MCU
- // (one 8x8 luminance block, two 8x8 chrominance blocks
- // and one 8x8 alpha block).
- //
- // Input data is in the order:
- // CMYK,CMYK,...,CMYK
- //
- // 0 8 srcStep
- // 0 +-------+--------------+
- // | | |
- // | | |
- // | | |
- // 8 +-------+--------------+
- //
- // Output data is in the order:
- // Y block, Cb block, Cr block, K block.
- //
- // 0 8 0 8 0 8 0 8
- // 0 +-------+ +-------+ +-------+ +-------+
- // | | | | | | | |
- // | Y | | Cb | | Cr | | K |
- // | | | | | | | |
- // 8 +-------+ +-------+ +-------+ +-------+
- //
- // Parameter:
- // pSrcCMYK pointer to input data
- // srcStep line offset in input data
- // pDstYCCK pointer to output array
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // This version handles Adobe-style CMYK->YCCK conversion,
- // where R = 1-C, G = 1-M, and B = 1-Y are converted to YCbCr,
- // while K (black) channel is unchanged.
- // Level Shift is defined in ISO/IEC 10918-1,
- // Appendix A - Requirements and guidelines, Annex A, A.3.1 - Level Shift.
- */
- IPPAPI(IppStatus, ippiCMYKToYCCK444LS_MCU_8u16s_C4P4R, (
- const Ipp8u* pSrcCMYK,
- int srcStep,
- Ipp16s* pDstYCCK[4]))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiCMYKToYCCK422LS_MCU_8u16s_C4P4R
- //
- // Purpose:
- // CMYK to YCCK color conversion, 4224 downsampling and level shift (-128)
- // This routine handles one "partial" 4:2:2:4 MCU of interleaved
- // RGBA_FPX DIB data (lines separated by lineoffset) and generates
- // a full color converted MCU (i.e., two 8x8 luminance blocks
- // and two 4x8 chrominance blocks and two 8x8 alpha blocks).
- //
- // Input data is in the order:
- // CMYK,CMYK,...,CMYK
- //
- // 0 15 srcStep
- // 0 +---------------+-------+
- // | | |
- // | | |
- // | | |
- // 8 +---------------+-------+
- //
- // Output data is in the order:
- // Y1 block, Y2 block, Cb block, Cr block, K1 block, K2 block.
- //
- // 0 8 15 0 8 0 8 0 8 15
- // 0 +-------+-------+ +-------+ +--------+ +-------+-------+
- // | | | | | | | | | |
- // | Y1 | Y2 | | Cb | | Cr | | K1 | K2 |
- // | | | | | | | | | |
- // 8 +-------+-------+ +-------+ +--------+ +-------+-------+
- //
- // Downsampling is done via averaging. For the above example,
- // the Cb and Cr blocks would each use an average of 2 pixels horizonatally
- // to get 1 pixel into the output blocks.
- //
- // Parameter:
- // pSrcCMYK pointer to input data
- // srcStep line offset in input data
- // pDstYCCK pointer to output array
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // This version handles Adobe-style CMYK->YCCK conversion,
- // where R = 1-C, G = 1-M, and B = 1-Y are converted to YCbCr,
- // while K (black) channel is unchanged.
- // Level Shift is defined in ISO/IEC 10918-1,
- // Appendix A - Requirements and guidelines, Annex A, A.3.1 - Level Shift.
- */
- IPPAPI(IppStatus, ippiCMYKToYCCK422LS_MCU_8u16s_C4P4R, (
- const Ipp8u* pSrcCMYK,
- int srcStep,
- Ipp16s* pDstYCCK[4]))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiCMYKToYCCK411LS_MCU_8u16s_C4P4R
- //
- // Purpose:
- // CMYK to YCCK color conversion, 4114 downsampling and level shift (-128)
- // This routine handles one 4:1:1:4 MCU of interleaved CMYK data
- // (lines separated by srcStep) and generates a full color converted MCU
- // (i.e., four 8x8 luminance blocks and two 8x8 chrominance blocks
- // and four 8x8 alpha blocks).
- //
- // Input data is in the order:
- // CMYK,CMYK,...,CMYK
- //
- // 0 15 srcStep
- // 0 +---------------+-------+
- // | | |
- // | | |
- // | | |
- // | | |
- // | | |
- // | | |
- // | | |
- // 15 +---------------+-------+
- //
- // Output data is in the order:
- // Y1 block, Y2 block, Y3 block, Y4 block,
- // Cb block, Cr block,
- // K1 block, K2 block, K3 block, K4 block.
- //
- // 0 8 15 0 8 0 8 0 8 15
- // 0 +-------+--------+ +--------+ +--------+ +-------+--------+
- // | | | | | | | | | |
- // | Y1 | Y2 | | Cb | | Cr | | K1 | K2 |
- // | | | | | | | | | |
- // 8 +-------+--------+ +--------+ +--------+ +-------+--------+
- // | | | | | |
- // | Y3 | Y4 | | K3 | K4 |
- // | | | | | |
- // 15 +-------+--------+ +-------+--------+
- //
- // Downsampling is done via averaging. For the above example,
- // the Cb and Cr blocks would each use an average of 4 pixels
- // to get 1 pixel into the output blocks.
- //
- // Parameter:
- // pSrcCMYK pointer to input data
- // srcStep line offset in input data
- // pDstYCCK pointer to output array
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // This version handles Adobe-style CMYK->YCCK conversion,
- // where R = 1-C, G = 1-M, and B = 1-Y are converted to YCbCr,
- // while K (black) channel is unchanged.
- // Level Shift is defined in ISO/IEC 10918-1,
- // Appendix A - Requirements and guidelines, Annex A, A.3.1 - Level Shift.
- */
- IPPAPI(IppStatus, ippiCMYKToYCCK411LS_MCU_8u16s_C4P4R, (
- const Ipp8u* pSrcCMYK,
- int srcStep,
- Ipp16s* pDstYCCK[4]))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiBGR555ToYCbCr444LS_MCU_16u16s_C3P3R
- // ippiBGR555ToYCbCr422LS_MCU_16u16s_C3P3R
- // ippiBGR555ToYCbCr411LS_MCU_16u16s_C3P3R
- // ippiBGR565ToYCbCr444LS_MCU_16u16s_C3P3R
- // ippiBGR565ToYCbCr422LS_MCU_16u16s_C3P3R
- // ippiBGR565ToYCbCr411LS_MCU_16u16s_C3P3R
- //
- // Purpose:
- // Color conversions, down-sampling and level shift (-128) for one MCU
- //
- // Parameter:
- // pSrcBGR pointer to input data
- // srcStep line offset in input data
- // pDstMCU pointer to pointers to output data
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // the color conversion equations:
- // Y = 0.29900*R + 0.58700*G + 0.11400*B - 128
- // Cb = -0.16874*R - 0.33126*G + 0.50000*B
- // Cr = 0.50000*R - 0.41869*G - 0.08131*B
- //
- // BGR555 format
- // 15 8 7 0
- // |xrrrrrgg|gggbbbbb|
- //
- // BGR565 format
- // 15 8 7 0
- // |rrrrrggg|gggbbbbb|
- //
- */
- IPPAPI(IppStatus, ippiBGR555ToYCbCr444LS_MCU_16u16s_C3P3R, (
- const Ipp16u* pSrcBGR,
- int srcStep,
- Ipp16s* pDstMCU[3]))
- IPPAPI(IppStatus, ippiBGR555ToYCbCr422LS_MCU_16u16s_C3P3R, (
- const Ipp16u* pSrcBGR,
- int srcStep,
- Ipp16s* pDstMCU[3]))
- IPPAPI(IppStatus, ippiBGR555ToYCbCr411LS_MCU_16u16s_C3P3R, (
- const Ipp16u* pSrcBGR,
- int srcStep,
- Ipp16s* pDstMCU[3]))
- IPPAPI(IppStatus, ippiBGR565ToYCbCr444LS_MCU_16u16s_C3P3R, (
- const Ipp16u* pSrcBGR,
- int srcStep,
- Ipp16s* pDstMCU[3]))
- IPPAPI(IppStatus, ippiBGR565ToYCbCr422LS_MCU_16u16s_C3P3R, (
- const Ipp16u* pSrcBGR,
- int srcStep,
- Ipp16s* pDstMCU[3]))
- IPPAPI(IppStatus, ippiBGR565ToYCbCr411LS_MCU_16u16s_C3P3R, (
- const Ipp16u* pSrcBGR,
- int srcStep,
- Ipp16s* pDstMCU[3]))
- /* ///////////////////////////////////////////////////////////////////////////
- // Functions for color conversion for decoder
- /////////////////////////////////////////////////////////////////////////// */
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiYCbCrToRGB_JPEG_8u_P3R
- //
- // Purpose:
- // YCbCr to RGB color conversion
- //
- // Parameter:
- // pSrcYCbCr pointer to pointers on input data.
- // pSrc[0] pointer to YY..YY
- // pSrc[1] pointer to CbCb..CbCb
- // pSrc[2] pointer to CrCr..CrCr
- // srcStep line offset in input data
- // pDstRGB pointer to pointers to output arrays
- // pDst[0] pointer to RR..RR
- // pDst[1] pointer to GG..GG
- // pDst[2] pointer to BB..BB
- // dstStep line offset in output data
- // roiSize ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // R = Y + 1.40200*Cr - 179.456
- // G = Y - 0.34414*Cb - 0.71414*Cr + 135.45984
- // B = Y + 1.77200*Cb - 226.816
- */
- IPPAPI(IppStatus, ippiYCbCrToRGB_JPEG_8u_P3R, (
- const Ipp8u* pSrcYCbCr[3],
- int srcStep,
- Ipp8u* pDstRGB[3],
- int dstStep,
- IppiSize roiSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiYCbCrToRGB_JPEG_8u_P3C3R
- //
- // Purpose:
- // YCbCr to RGB color conversion
- //
- // Parameter:
- // pSrcYCbCr pointer to pointers to input data
- // pSrcYCbCr[0] pointer to YY..YY
- // pSrcYCbCr[1] pointer to CbCb..CbCb
- // pSrcYCbCr[2] pointer to CrCr..CrCr
- // srcStep line offset in input data
- // pDstRGB pointer to output array RGBRGB..RGBRGB
- // dstStep line offset in output data
- // roiSize ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // R = Y + 1.40200*Cr - 179.456
- // G = Y - 0.34414*Cb - 0.71414*Cr + 135.45984
- // B = Y + 1.77200*Cb - 226.816
- */
- IPPAPI(IppStatus, ippiYCbCrToRGB_JPEG_8u_P3C3R, (
- const Ipp8u* pSrcYCbCr[3],
- int srcStep,
- Ipp8u* pDstRGB,
- int dstStep,
- IppiSize roiSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiYCbCrToBGR_JPEG_8u_P3C3R
- //
- // Purpose:
- // YCbCr to BGR color conversion
- //
- // Parameter:
- // pSrcYCbCr pointer to pointers to input data
- // pSrcYCbCr[0] pointer to YY..YY
- // pSrcYCbCr[1] pointer to CbCb..CbCb
- // pSrcYCbCr[2] pointer to CrCr..CrCr
- // srcStep line offset in input data
- // pDstBGR pointer to output array BGRBGR..BGRBGR
- // dstStep line offset in output data
- // roiSize ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // R = Y + 1.40200*Cr - 179.456
- // G = Y - 0.34414*Cb - 0.71414*Cr + 135.45984
- // B = Y + 1.77200*Cb - 226.816
- */
- IPPAPI(IppStatus, ippiYCbCrToBGR_JPEG_8u_P3C3R, (
- const Ipp8u* pSrcYCbCr[3],
- int srcStep,
- Ipp8u* pDstBGR,
- int dstStep,
- IppiSize roiSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiYCbCr422ToRGB_JPEG_8u_C2C3R
- //
- // Purpose:
- // YCbCr to RGB 4:2:2 up-sampling and color conversion
- //
- // Parameter:
- // pSrc pointer to input YUY2 data (Y0 Cb0 Y1 Cr0 ..)
- // srcStep line offset in input data
- // pDst pointer to output array RGBRGB..RGBRGB
- // dstStep line offset in output data
- // roiSize ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // width should even number
- // color convertion implemented according the following equations
- // R = Y + 1.40200*Cr - 179.456
- // G = Y - 0.34414*Cb - 0.71414*Cr + 135.45984
- // B = Y + 1.77200*Cb - 226.816
- */
- IPPAPI(IppStatus, ippiYCbCr422ToRGB_JPEG_8u_C2C3R, (
- const Ipp8u* pSrc,
- int srcStep,
- Ipp8u* pDst,
- int dstStep,
- IppiSize roiSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiYCbCrToRGB555_JPEG_8u16u_P3C3R
- //
- // Purpose:
- // YCbCr to RGB555 color conversation
- //
- // Parameter:
- // pSrcYCbCr pointer to pointers to input data
- // srcStep line offset in input data
- // pDstRGB pointer to output data
- // dstStep line offset in output data
- // roiSize ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // the color conversion equations:
- // R = Y + 1.40200*Cr - 179.456
- // G = Y - 0.34414*Cb - 0.71414*Cr + 135.45984
- // B = Y + 1.77200*Cb - 226.816
- //
- // RGB555 format
- // 15 8 7 0
- // |xbbbbbgg|gggrrrrr|
- //
- */
- IPPAPI(IppStatus, ippiYCbCrToRGB555_JPEG_8u16u_P3C3R, (
- const Ipp8u* pSrcYCbCr[3],
- int srcStep,
- Ipp16u* pDstRGB,
- int dstStep,
- IppiSize roiSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiYCbCrToBGR555_JPEG_8u16u_P3C3R
- //
- // Purpose:
- // YCbCr to BGR555 color conversation
- //
- // Parameter:
- // pSrcYCbCr pointer to pointers to input data
- // srcStep line offset in input data
- // pDstBGR pointer to output data
- // dstStep line offset in output data
- // roiSize ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // the color conversion equations:
- // R = Y + 1.40200*Cr - 179.456
- // G = Y - 0.34414*Cb - 0.71414*Cr + 135.45984
- // B = Y + 1.77200*Cb - 226.816
- //
- // BGR555 format
- // 15 8 7 0
- // |xrrrrrgg|gggbbbbb|
- //
- */
- IPPAPI(IppStatus, ippiYCbCrToBGR555_JPEG_8u16u_P3C3R, (
- const Ipp8u* pSrcYCbCr[3],
- int srcStep,
- Ipp16u* pDstBGR,
- int dstStep,
- IppiSize roiSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiYCbCrToRGB565_JPEG_8u16u_P3C3R
- //
- // Purpose:
- // YCbCr to RGB565 color conversation
- //
- // Parameter:
- // pSrcYCbCr pointer to pointers to input data
- // srcStep line offset in input data
- // pDstRGB pointer to output data
- // dstStep line offset in output data
- // roiSize ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // the color conversion equations:
- // R = Y + 1.40200*Cr - 179.456
- // G = Y - 0.34414*Cb - 0.71414*Cr + 135.45984
- // B = Y + 1.77200*Cb - 226.816
- //
- // RGB565 format
- // 15 8 7 0
- // |bbbbbggg|gggrrrrr|
- //
- */
- IPPAPI(IppStatus, ippiYCbCrToRGB565_JPEG_8u16u_P3C3R, (
- const Ipp8u* pSrcYCbCr[3],
- int srcStep,
- Ipp16u* pDstRGB,
- int dstStep,
- IppiSize roiSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiYCbCrToBGR565_JPEG_8u16u_P3C3R
- //
- // Purpose:
- // YCbCr to BGR565 color conversation
- //
- // Parameter:
- // pSrcYCbCr pointer to pointers to input data
- // srcStep line offset in input data
- // pDstBGR pointer to output data
- // dstStep line offset in output data
- // roiSize ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // the color conversion equations:
- // R = Y + 1.40200*Cr - 179.456
- // G = Y - 0.34414*Cb - 0.71414*Cr + 135.45984
- // B = Y + 1.77200*Cb - 226.816
- //
- // BGR565 format
- // 15 8 7 0
- // |rrrrrggg|gggbbbbb|
- //
- */
- IPPAPI(IppStatus, ippiYCbCrToBGR565_JPEG_8u16u_P3C3R, (
- const Ipp8u* pSrcYCbCr[3],
- int srcStep,
- Ipp16u* pDstBGR,
- int dstStep,
- IppiSize roiSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiYCCKToCMYK_JPEG_8u_P4R
- //
- // Purpose:
- // YCCK to CMYK color conversion
- //
- // Parameter:
- // pSrcYCCK pointer to pointers to input data
- // pSrc[0] pointer to YY..YY
- // pSrc[1] pointer to CC..CC
- // pSrc[2] pointer to CC..CC
- // pSrc[3] pointer to KK..KK
- // srcStep line offset in input data
- // pDstCMYK pointer to pointers to output arrays
- // pDst[0] pointer to CC..CC
- // pDst[1] pointer to MM..MM
- // pDst[2] pointer to YY..YY
- // pDst[3] pointer to KK..KK
- // dstStep line offset in output data
- // roiSize ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // This version handles Adobe-style YCCK->CMYK conversion,
- // Where YCbCr are converted to R = 1-C, G = 1-M, B = 1-Y,
- // while K (black) channel is unchanged.
- */
- IPPAPI(IppStatus, ippiYCCKToCMYK_JPEG_8u_P4R, (
- const Ipp8u* pSrcYCCK[4],
- int srcStep,
- Ipp8u* pDstCMYK[4],
- int dstStep,
- IppiSize roiSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiYCCKToCMYK_JPEG_8u_P4C4R
- //
- // Purpose:
- // YCCK to CMYK color conversion
- //
- // Parameter:
- // pSrcYCCK pointer to pointers to input data
- // pSrc[0] pointer to YY..YY
- // pSrc[1] pointer to CC..CC
- // pSrc[2] pointer to CC..CC
- // pSrc[3] pointer to KK..KK
- // srcStep line offset in input data
- // pDstCMYK pointer to output array CMYKCMYK..CMYKCMYK
- // dstStep line offset in output data
- // roiSize ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // This version handles Adobe-style YCCK->CMYK conversion,
- // Where YCbCr are converted to R = 1-C, G = 1-M, B = 1-Y,
- // while K (black) channel is unchanged.
- */
- IPPAPI(IppStatus, ippiYCCKToCMYK_JPEG_8u_P4C4R, (
- const Ipp8u* pSrcYCCK[4],
- int srcStep,
- Ipp8u* pDstCMYK,
- int dstStep,
- IppiSize roiSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Sampling and color conversion functions for decoder
- /////////////////////////////////////////////////////////////////////////// */
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiYCbCr444ToRGBLS_MCU_16s8u_P3C3R
- //
- // Purpose:
- //
- // This procedure implements the 1:1:1 upsampling and
- // color space conversion from YCbCr to RGB color space
- //
- // Input data is in the order:
- // Y block, Cb block, Cr block
- //
- // 0 8 0 8 0 8
- // 0 +-------+ +-------+ +-------+
- // | | | | | |
- // | Y | | Cb | | Cr |
- // | | | | | |
- // 8 +-------+ +-------+ +-------+
- //
- // Output data is in the order:
- // RGB,RGB,...,RGB
- // 0 8 dstStep
- // 0 +-------+-------------------+
- // | | |
- // | | |
- // | | |
- // 8 +-------+-------------------+
- //
- // Parameter:
- // pSrcMCU pointer to input data
- // pDstRGB pointer to pointers to output arrays
- // dstStep line offset in output data
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // the color conversion equations (including level shift +128):
- // R = Y + 1.40200*Cr + 128
- // G = Y - 0.34414*Cb - 0.71414*Cr + 128
- // B = Y + 1.77200*Cb + 128
- // up-sampling is just box filter
- // Level Shift is defined in ISO/IEC 10918-1,
- // Appendix A - Requirements and guidelines, Annex A, A.3.1 - Level Shift.
- */
- IPPAPI(IppStatus, ippiYCbCr444ToRGBLS_MCU_16s8u_P3C3R, (
- const Ipp16s* pSrcMCU[3],
- Ipp8u* pDstRGB,
- int dstStep))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiYCbCr422ToRGBLS_MCU_16s8u_P3C3R
- //
- // Purpose:
- //
- // Performs upsampling and YCbCr->RGB color conversion,
- // and output data formatting of DCT output blocks,
- // for a subset of a 4:2:2 MCU.
- //
- // Input data is in the order:
- // Y1 block, Y2 block, Cb block, Cr block.
- //
- // 0 8 15 0 8 0 8
- // 0 +-------+-------+ 0 +-------+ +-------+
- // | | | | | | |
- // | Y1 | Y2 | | Cb | | Cr |
- // | | | | | | |
- // 8 +-------+-------+ 8 +-------+ +-------+
- //
- // Output data is in the order:
- // RGB,RGB,...,RGB
- //
- // 0 15 dstStep
- // 0 +---------------+-------+
- // | | |
- // | | |
- // | | |
- // 8 +---------------+-------+
- //
- // Parameter:
- // pSrcMCU pointer to input data
- // pDstRGB pointer to pointers to output arrays
- // dstStep line offset in output data
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // the color conversion equations (including level shift +128):
- // R = Y + 1.40200*Cr + 128
- // G = Y - 0.34414*Cb - 0.71414*Cr + 128
- // B = Y + 1.77200*Cb + 128
- // up-sampling is just box filter
- // Level Shift is defined in ISO/IEC 10918-1,
- // Appendix A - Requirements and guidelines, Annex A, A.3.1 - Level Shift.
- */
- IPPAPI(IppStatus, ippiYCbCr422ToRGBLS_MCU_16s8u_P3C3R, (
- const Ipp16s* pSrcMCU[3],
- Ipp8u* pDstRGB,
- int dstStep))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiYCbCr411ToRGBLS_MCU_16s8u_P3C3R
- //
- // Purpose:
- //
- // Performs upsampling and YCbCr->RGB color conversion,
- // and output data formatting of DCT output blocks,
- // for a subset of a 4:1:1 MCU.
- //
- // Input data is in the order:
- // Y1 block, Y2 block, Y3 block, Y4 block,
- // Cb block, Cr block,
- //
- // 0 8 15 0 8 0 8
- // 0 +-------+--------+ +--------+ +--------+
- // | | | | | | |
- // | Y1 | Y2 | | Cb | | Cr |
- // | | | | | | |
- // 8 +-------+--------+ +--------+ +--------+
- // | | |
- // | Y3 | Y4 |
- // | | |
- // 15 +-------+--------+
- //
- // Output data is in the order:
- // RGB,RGB,...,RGB
- //
- // 0 15 dstStep
- // 0 +---------------+-------+
- // | | |
- // | | |
- // | | |
- // | | |
- // | | |
- // | | |
- // | | |
- // 15 +---------------+-------+
- //
- // Parameter:
- // pSrcMCU pointer to input data
- // pDstRGB pointer to pointers to output arrays
- // dstStep line offset in output data
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // the color conversion equations (including level shift +128):
- // R = Y + 1.40200*Cr + 128
- // G = Y - 0.34414*Cb - 0.71414*Cr + 128
- // B = Y + 1.77200*Cb + 128
- // up-sampling is just box filter
- // Level Shift is defined in ISO/IEC 10918-1,
- // Appendix A - Requirements and guidelines, Annex A, A.3.1 - Level Shift.
- */
- IPPAPI(IppStatus, ippiYCbCr411ToRGBLS_MCU_16s8u_P3C3R, (
- const Ipp16s* pSrcMCU[3],
- Ipp8u* pDstRGB,
- int dstStep))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiYCbCr444ToBGRLS_MCU_16s8u_P3C3R
- //
- // Purpose:
- //
- // This procedure implements the 1:1:1 upsampling and
- // color space conversion from YCbCr to BGR color space
- //
- // Input data is in the order:
- // Y block, Cb block, Cr block
- //
- // 0 8 0 8 0 8
- // 0 +-------+ +-------+ +-------+
- // | | | | | |
- // | Y | | Cb | | Cr |
- // | | | | | |
- // 8 +-------+ +-------+ +-------+
- //
- // Output data is in the order:
- // BGR,BGR,...,BGR
- // 0 8 dstStep
- // 0 +-------+-------------------+
- // | | |
- // | | |
- // | | |
- // 8 +-------+-------------------+
- //
- // Parameter:
- // pSrcMCU pointer to input data
- // pDstBGR pointer to pointers to output arrays
- // dstStep line offset in output data
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // the color conversion equations (including level shift +128):
- // R = Y + 1.40200*Cr + 128
- // G = Y - 0.34414*Cb - 0.71414*Cr + 128
- // B = Y + 1.77200*Cb + 128
- // up-sampling is just box filter
- // Level Shift is defined in ISO/IEC 10918-1,
- // Appendix A - Requirements and guidelines, Annex A, A.3.1 - Level Shift.
- */
- IPPAPI(IppStatus, ippiYCbCr444ToBGRLS_MCU_16s8u_P3C3R, (
- const Ipp16s* pSrcMCU[3],
- Ipp8u* pDstBGR,
- int dstStep))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiYCbCr422ToBGRLS_MCU_16s8u_P3C3R
- //
- // Purpose:
- //
- // Performs upsampling and YCbCr->BGR color conversion,
- // and output data formatting of DCT output blocks,
- // for a subset of a 4:2:2 MCU.
- //
- // Input data is in the order:
- // Y1 block, Y2 block, Cb block, Cr block.
- //
- // 0 8 15 0 8 0 8
- // 0 +-------+-------+ 0 +-------+ +-------+
- // | | | | | | |
- // | Y1 | Y2 | | Cb | | Cr |
- // | | | | | | |
- // 8 +-------+-------+ 8 +-------+ +-------+
- //
- // Output data is in the order:
- // BGR,BGR,...,BGR
- //
- // 0 15 dstStep
- // 0 +---------------+-------+
- // | | |
- // | | |
- // | | |
- // 8 +---------------+-------+
- //
- // Parameter:
- // pSrcMCU pointer to input data
- // pDstBGR pointer to pointers to output arrays
- // dstStep line offset in output data
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // the color conversion equations (including level shift +128):
- // R = Y + 1.40200*Cr + 128
- // G = Y - 0.34414*Cb - 0.71414*Cr + 128
- // B = Y + 1.77200*Cb + 128
- // up-sampling is just box filter
- // Level Shift is defined in ISO/IEC 10918-1,
- // Appendix A - Requirements and guidelines, Annex A, A.3.1 - Level Shift.
- */
- IPPAPI(IppStatus, ippiYCbCr422ToBGRLS_MCU_16s8u_P3C3R, (
- const Ipp16s* pSrcMCU[3],
- Ipp8u* pDstBGR,
- int dstStep))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiYCbCr411ToBGRLS_MCU_16s8u_P3C3R
- //
- // Purpose:
- //
- // Performs upsampling and YCbCr->BGR color conversion,
- // and output data formatting of DCT output blocks,
- // for a subset of a 4:1:1 MCU.
- //
- // Input data is in the order:
- // Y1 block, Y2 block, Y3 block, Y4 block,
- // Cb block, Cr block,
- //
- // 0 8 15 0 8 0 8
- // 0 +-------+--------+ +--------+ +--------+
- // | | | | | | |
- // | Y1 | Y2 | | Cb | | Cr |
- // | | | | | | |
- // 8 +-------+--------+ +--------+ +--------+
- // | | |
- // | Y3 | Y4 |
- // | | |
- // 15 +-------+--------+
- //
- // Output data is in the order:
- // BGR,BGR,...,BGR
- //
- // 0 15 dstStep
- // 0 +---------------+-------+
- // | | |
- // | | |
- // | | |
- // | | |
- // | | |
- // | | |
- // | | |
- // 15 +---------------+-------+
- //
- // Parameter:
- // pSrcMCU pointer to input data
- // pDstBGR pointer to pointers to output arrays
- // dstStep line offset in output data
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // the color conversion equations (including level shift +128):
- // R = Y + 1.40200*Cr + 128
- // G = Y - 0.34414*Cb - 0.71414*Cr + 128
- // B = Y + 1.77200*Cb + 128
- // up-sampling is just box filter
- // Level Shift is defined in ISO/IEC 10918-1,
- // Appendix A - Requirements and guidelines, Annex A, A.3.1 - Level Shift.
- */
- IPPAPI(IppStatus, ippiYCbCr411ToBGRLS_MCU_16s8u_P3C3R, (
- const Ipp16s* pSrcMCU[3],
- Ipp8u* pDstBGR,
- int dstStep))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiYCbCr444ToBGR555LS_MCU_16s16u_P3C3R
- // ippiYCbCr422ToBGR555LS_MCU_16s16u_P3C3R
- // ippiYCbCr411ToBGR555LS_MCU_16s16u_P3C3R
- // ippiYCbCr444ToBGR565LS_MCU_16s16u_P3C3R
- // ippiYCbCr422ToBGR565LS_MCU_16s16u_P3C3R
- // ippiYCbCr411ToBGR565LS_MCU_16s16u_P3C3R
- //
- // Purpose:
- // Color conversions, up-sampling and level shift (+128) for one MCU
- //
- // Parameter:
- // pSrcYCbCr pointer to pointers to input data
- // pDstMCU pointer to output data
- // dstStep line offset in output data
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // the color conversion equations (including level shift +128):
- // R = Y + 1.40200*Cr + 128
- // G = Y - 0.34414*Cb - 0.71414*Cr + 128
- // B = Y + 1.77200*Cb + 128
- // up-sampling is just box filter
- //
- // BGR555 format
- // 15 8 7 0
- // |xrrrrrgg|gggbbbbb|
- //
- // BGR565 format
- // 15 8 7 0
- // |rrrrrggg|gggbbbbb|
- //
- */
- IPPAPI(IppStatus, ippiYCbCr444ToBGR555LS_MCU_16s16u_P3C3R, (
- const Ipp16s* pSrcMCU[3],
- Ipp16u* pDstBGR,
- int dstStep))
- IPPAPI(IppStatus, ippiYCbCr422ToBGR555LS_MCU_16s16u_P3C3R, (
- const Ipp16s* pSrcMCU[3],
- Ipp16u* pDstBGR,
- int dstStep))
- IPPAPI(IppStatus, ippiYCbCr411ToBGR555LS_MCU_16s16u_P3C3R, (
- const Ipp16s* pSrcMCU[3],
- Ipp16u* pDstBGR,
- int dstStep))
- IPPAPI(IppStatus, ippiYCbCr444ToBGR565LS_MCU_16s16u_P3C3R, (
- const Ipp16s* pSrcMCU[3],
- Ipp16u* pDstBGR,
- int dstStep))
- IPPAPI(IppStatus, ippiYCbCr422ToBGR565LS_MCU_16s16u_P3C3R, (
- const Ipp16s* pSrcMCU[3],
- Ipp16u* pDstBGR,
- int dstStep))
- IPPAPI(IppStatus, ippiYCbCr411ToBGR565LS_MCU_16s16u_P3C3R, (
- const Ipp16s* pSrcMCU[3],
- Ipp16u* pDstBGR,
- int dstStep))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiSampleUp444LS_MCU_16s8u_P3C3R
- //
- // Purpose:
- //
- // This procedure implements the 1:1:1 upsampling.
- // No color conversion is performed.
- //
- // Input data is in the order:
- // C1 block, C2 block, C3 block
- //
- // 0 8 0 8 0 8
- // 0 +-------+ +-------+ +-------+
- // | | | | | |
- // | C1 | | C2 | | C3 |
- // | | | | | |
- // 8 +-------+ +-------+ +-------+
- //
- // Output data is in the order:
- // C1C2C3,C1C2C3,...,C1C2C3
- // 0 8 dstStep
- // 0 +-------+-------------------+
- // | | |
- // | | |
- // | | |
- // 8 +-------+-------------------+
- //
- // Parameter:
- // pSrcMCU pointer to input data
- // pDst pointer to pointers to output arrays
- // dstStep line offset in output data
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- // Level Shift is defined in ISO/IEC 10918-1,
- // Appendix A - Requirements and guidelines, Annex A, A.3.1 - Level Shift.
- */
- IPPAPI(IppStatus, ippiSampleUp444LS_MCU_16s8u_P3C3R, (
- const Ipp16s* pSrcMCU[3],
- Ipp8u* pDst,
- int dstStep))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiSampleUp422LS_MCU_16s8u_P3C3R
- //
- // Purpose:
- //
- // Performs upsampling and output data
- // formatting of DCT output blocks,
- // for a subset of a 4:2:2 MCU. No color conversion
- // is performed.
- //
- // Input data is in the order:
- // C1 1th block, C1 2th block, C2 block, C3 block.
- //
- // 0 8 15 0 8 0 8
- // 0 +-------+-------+ 0 +-------+ +-------+
- // | | | | | | |
- // | | | | | | |
- // | | | | | | |
- // 8 +-------+-------+ 8 +-------+ +-------+
- //
- // Output data is in the order:
- // C1C2C3,C1C2C3,...,C1C2C3
- //
- // 0 15 dstStep
- // 0 +---------------+-------+
- // | | |
- // | | |
- // | | |
- // 8 +---------------+-------+
- //
- // Parameter:
- // pSrcMCU pointer to input data
- // pDst pointer to pointers to output arrays
- // dstStep line offset in output data
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // up-sampling is just box filter
- // Level Shift is defined in ISO/IEC 10918-1,
- // Appendix A - Requirements and guidelines, Annex A, A.3.1 - Level Shift.
- */
- IPPAPI(IppStatus, ippiSampleUp422LS_MCU_16s8u_P3C3R, (
- const Ipp16s* pSrcMCU[3],
- Ipp8u* pDst,
- int dstStep))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiSampleUp411LS_MCU_16s8u_P3C3R
- //
- // Purpose:
- //
- // Performs upsampling and output data
- // formatting of DCT output blocks,
- // for a subset of a 4:1:1 MCU. No color conversion
- // is performed.
- //
- // Input data is in the order:
- // C1 1th block, C1 2th block, C1 3th block, C1 4th block,
- // C2 block, C3 block,
- //
- // 0 8 15 0 8 0 8
- // 0 +-------+--------+ +--------+ +--------+
- // | | | | | | |
- // | | | | | | |
- // | | | | | | |
- // 8 +-------+--------+ +--------+ +--------+
- // | | |
- // | | |
- // | | |
- // 15 +-------+--------+
- //
- // Output data is in the order:
- // C1C2C3,C1C2C3,...,C1C2C3
- //
- // 0 15 dstStep
- // 0 +---------------+-------+
- // | | |
- // | | |
- // | | |
- // | | |
- // | | |
- // | | |
- // | | |
- // 15 +---------------+-------+
- //
- // Parameter:
- // pSrcMCU pointer to input data
- // pDst pointer to pointers to output arrays
- // dstStep line offset in output data
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // up-sampling is just box filter
- // Level Shift is defined in ISO/IEC 10918-1,
- // Appendix A - Requrements and guidelines, Annex A, A.3.1 - Level Shift.
- */
- IPPAPI(IppStatus, ippiSampleUp411LS_MCU_16s8u_P3C3R, (
- const Ipp16s* pSrcMCU[3],
- Ipp8u* pDst,
- int dstStep))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiJoin422LS_MCU_16s8u_P3C2R
- //
- // Purpose:
- //
- // Performs planar to pixel conversion,
- // preserving 422 sampling, for a subset of a 4:2:2 MCU.
- //
- // Input data is in the order:
- // Y1 block, Y2 block, Cb block, Cr block.
- //
- // 0 8 15 0 8 0 8
- // 0 +-------+-------+ 0 +-------+ +-------+
- // | | | | | | |
- // | Y1 | Y2 | | Cb | | Cr |
- // | | | | | | |
- // 8 +-------+-------+ 8 +-------+ +-------+
- //
- // Output data is in the order:
- // YCbYCr,YCbYCr,...,YCbYCr
- //
- // 0 15 dstStep
- // 0 +---------------+-------+
- // | | |
- // | | |
- // | | |
- // 8 +---------------+-------+
- //
- // Parameter:
- // pSrcMCU pointer to the array of pointers to input data
- // pDst pointer to output data
- // dstStep line offset in output data
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- */
- IPPAPI(IppStatus, ippiJoin422LS_MCU_16s8u_P3C2R, (
- const Ipp16s* pSrcMCU[3],
- Ipp8u* pDst,
- int dstStep))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiYCCK444ToCMYKLS_MCU_16s8u_P4C4R
- //
- // Purpose:
- //
- // This procedure implements the 1:1:1:1 upsampling and
- // color space conversion from YCCK to CMYK color space
- //
- // Input data is in the order:
- // Y block, Cb block, Cr block, K block.
- //
- // 0 8 0 8 0 8 0 8
- // 0 +-------+ +-------+ +-------+ +-------+
- // | | | | | | | |
- // | Y | | Cb | | Cr | | K |
- // | | | | | | | |
- // 8 +-------+ +-------+ +-------+ +-------+
- //
- // Output data is in the order:
- // CMYK,CMYK,...,CMYK
- //
- // 0 8 dstStep
- // 0 +-------+--------------+
- // | | |
- // | | |
- // | | |
- // 8 +-------+--------------+
- //
- // Parameter:
- // pSrcMCU pointer to input data
- // pDstCMYK pointer to pointers to output arrays
- // dstStep line offset in output data
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // This version handles Adobe-style YCCK->CMYK conversion,
- // Where YCbCr are converted to R = 1-C, G = 1-M, B = 1-Y,
- // while K (black) channel is unchanged.
- // Level Shift is defined in ISO/IEC 10918-1,
- // Appendix A - Requirements and guidelines, Annex A, A.3.1 - Level Shift.
- */
- IPPAPI(IppStatus, ippiYCCK444ToCMYKLS_MCU_16s8u_P4C4R, (
- const Ipp16s* pSrcMCU[4],
- Ipp8u* pDstCMYK,
- int dstStep))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiYCCK422ToCMYKLS_MCU_16s8u_P4C4R
- //
- // Purpose:
- //
- // Performs upsampling and YCbCr->RGB color conversion,
- // and output data formatting of DCT output blocks,
- // for a subset of a 4:2:2:4 MCU.
- //
- // Input data is in the order:
- // Y1 block, Y2 block, Cb block, Cr block, K1 block, K2 block.
- //
- // 0 8 15 0 8 0 8 0 8 15
- // 0 +-------+-------+ +-------+ +--------+ +-------+-------+
- // | | | | | | | | | |
- // | Y1 | Y2 | | Cb | | Cr | | K1 | K2 |
- // | | | | | | | | | |
- // 8 +-------+-------+ +-------+ +--------+ +-------+-------+
- //
- // Output data is in the order:
- // CMYK,CMYK,...,CMYK
- //
- // 0 15 dstStep
- // 0 +---------------+-------+
- // | | |
- // | | |
- // | | |
- // 8 +---------------+-------+
- //
- // Parameter:
- // pSrcMCU pointer to input data
- // pDstCMYK pointer to pointers to output arrays
- // dstStep line offset in output data
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // This version handles Adobe-style YCCK->CMYK conversion,
- // Where YCbCr are converted to R = 1-C, G = 1-M, B = 1-Y,
- // while K (black) channel is unchanged.
- // Level Shift is defined in ISO/IEC 10918-1,
- // Appendix A - Requirements and guidelines, Annex A, A.3.1 - Level Shift.
- */
- IPPAPI(IppStatus, ippiYCCK422ToCMYKLS_MCU_16s8u_P4C4R, (
- const Ipp16s* pSrcMCU[4],
- Ipp8u* pDstCMYK,
- int dstStep))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiYCCK411ToCMYKLS_MCU_16s8u_P4C4R
- //
- // Purpose:
- //
- // Performs upsampling and YCbCr->RGB color conversion,
- // and output data formatting of DCT output blocks,
- // for a subset of a 4:1:1:4 MCU.
- //
- // Input data is in the order:
- // Y1 block, Y2 block, Y3 block, Y4 block,
- // Cb block, Cr block,
- // K1 block, K2 block, K3 block, K4 block.
- //
- // 0 8 15 0 8 0 8 0 8 15
- // 0 +-------+--------+ +--------+ +--------+ +-------+--------+
- // | | | | | | | | | |
- // | Y1 | Y2 | | Cb | | Cr | | K1 | K2 |
- // | | | | | | | | | |
- // 8 +-------+--------+ +--------+ +--------+ +-------+--------+
- // | | | | | |
- // | Y3 | Y4 | | K3 | K4 |
- // | | | | | |
- // 15 +-------+--------+ +-------+--------+
- //
- // Output data is in the order:
- // CMYK,CMYK,...,CMYK
- //
- // 0 15 dstStep
- // 0 +---------------+-------+
- // | | |
- // | | |
- // | | |
- // | | |
- // | | |
- // | | |
- // | | |
- // 15 +---------------+-------+
- //
- // Parameter:
- // pSrcMCU pointer to input data
- // pDstCMYK pointer to pointers to output arrays
- // dstStep line offset in output data
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // This version handles Adobe-style YCCK->CMYK conversion,
- // Where YCbCr are converted to R = 1-C, G = 1-M, B = 1-Y,
- // while K (black) channel is unchanged.
- // Level Shift is defined in ISO/IEC 10918-1,
- // Appendix A - Requirements and guidelines, Annex A, A.3.1 - Level Shift.
- */
- IPPAPI(IppStatus, ippiYCCK411ToCMYKLS_MCU_16s8u_P4C4R, (
- const Ipp16s* pSrcMCU[4],
- Ipp8u* pDstCMYK,
- int dstStep))
- /* ///////////////////////////////////////////////////////////////////////////
- // DCT + Quantization + Level Shift Functions for encoder
- /////////////////////////////////////////////////////////////////////////// */
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDCTQuantFwd8x8LS_JPEG_8u16s_C1R
- //
- // Purpose:
- // Forward DCT transform, quantization and level shift
- //
- // Parameter:
- // pSrc - pointer to source color component data
- // srcStep - line offset for source data
- // pDst - pointer to output 8x8 block
- // of quantized DCT coefficients
- // pQuantFwdTable - pointer to Quantization table
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // DCT is defined in ISO/IEC 10918-1,
- // Appendix A - Requrements and guidelines, Annex A, A.3.3 FDCT and IDCT.
- // Quantization is defined in ISO/IEC 10918-1,
- // Appendix A - Requrements and guidelines,
- // Annex A, A.3.4 DCT coefficient quantization and dequantization.
- // Level Shift is defined in ISO/IEC 10918-1,
- // Appendix A - Requrements and guidelines, Annex A, A.3.1 - Level Shift.
- */
- IPPAPI(IppStatus, ippiDCTQuantFwd8x8LS_JPEG_8u16s_C1R, (
- const Ipp8u* pSrc,
- int srcStep,
- Ipp16s* pDst,
- const Ipp16u* pQuantFwdTable))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDCTQuantFwd8x8LS_JPEG_16u16s_C1R
- //
- // Purpose:
- // Forward DCT transform, quantization and level shift
- // for 12-bit data
- //
- // Parameter:
- // pSrc - pointer to source color component data
- // srcStep - line offset for source data
- // pDst - pointer to output 8x8 block
- // of quantized DCT coefficients
- // pQuantFwdTable - pointer to Quantization table
- //
- // Returns:
- // IppStatus
- */
- IPPAPI(IppStatus, ippiDCTQuantFwd8x8LS_JPEG_16u16s_C1R, (
- const Ipp16u* pSrc,
- int srcStep,
- Ipp16s* pDst,
- const Ipp32f* pQuantFwdTable))
- /* ///////////////////////////////////////////////////////////////////////////
- // DCT + Quantization Functions for encoder
- /////////////////////////////////////////////////////////////////////////// */
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDCTQuantFwd8x8_JPEG_16s_C1
- //
- // Purpose:
- // Forward DCT transform and quantization
- //
- // Parameter:
- // pSrc - pointer to source 8x8 block
- // pDst - pointer to output 8x8 block
- // pQuantFwdTable - pointer to Quantization table
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiDCTQuantFwd8x8_JPEG_16s_C1, (
- const Ipp16s* pSrc,
- Ipp16s* pDst,
- const Ipp16u* pQuantFwdTable))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDCTQuantFwd8x8_JPEG_16s_C1I
- //
- // Purpose:
- // Forward DCT transform and quantization
- //
- // Parameter:
- // pSrcDst - pointer to 8x8 block
- // pQuantFwdTable - pointer to Quantization table
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiDCTQuantFwd8x8_JPEG_16s_C1I, (
- Ipp16s* pSrcDst,
- const Ipp16u* pQuantFwdTable))
- /* ///////////////////////////////////////////////////////////////////////////
- // DCT + Dequantization + Level Shift Functions for decoder
- /////////////////////////////////////////////////////////////////////////// */
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDCTQuantInv8x8LS_JPEG_16s8u_C1R
- // ippiDCTQuantInv8x8LS_4x4_JPEG_16s8u_C1R
- // ippiDCTQuantInv8x8LS_2x2_JPEG_16s8u_C1R
- // ippiDCTQuantInv8x8LS_1x1_JPEG_16s8u_C1R
- //
- // Purpose:
- // Inverse DCT transform, de-quantization and level shift for
- // 1) the whole 8x8 block
- // 2) top-left 4x4 quadrant, in case when rest of coefs are zero
- // 3) top-left 2x2 part of 8x8 block, in case when rest of coefs are zero
- // 4) only DC coef is not zero in 8x8 block
- //
- //
- // Parameter:
- // pSrc - pointer to input 8x8 block of quantized DCT coefficients
- // pDst - pointer to output color component data
- // dstStep - line offset for destination data
- // pQuantInvTable - pointer to Quantization table
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // DCT is defined in ISO/IEC 10918-1,
- // Appendix A - Requrements and guidelines, Annex A, A.3.3 FDCT and IDCT.
- // Quantization is defined in ISO/IEC 10918-1,
- // Appendix A - Requrements and guidelines,
- // Annex A, A.3.4 DCT coefficient quantization and dequantization.
- // Level Shift is defined in ISO/IEC 10918-1,
- // Appendix A - Requrements and guidelines, Annex A, A.3.1 - Level Shift.
- */
- IPPAPI(IppStatus, ippiDCTQuantInv8x8LS_JPEG_16s8u_C1R, (
- const Ipp16s* pSrc,
- Ipp8u* pDst,
- int dstStep,
- const Ipp16u* pQuantInvTable))
- IPPAPI(IppStatus, ippiDCTQuantInv8x8LS_4x4_JPEG_16s8u_C1R,(
- const Ipp16s* pSrc,
- Ipp8u* pDst,
- int dstStep,
- const Ipp16u* pQuantInvTable))
- IPPAPI(IppStatus, ippiDCTQuantInv8x8LS_2x2_JPEG_16s8u_C1R,(
- const Ipp16s* pSrc,
- Ipp8u* pDst,
- int dstStep,
- const Ipp16u* pQuantInvTable))
- IPPAPI(IppStatus, ippiDCTQuantInv8x8LS_1x1_JPEG_16s8u_C1R,(
- const Ipp16s* pSrc,
- Ipp8u* pDst,
- int dstStep,
- const Ipp16u* pQuantInvTable))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDCTQuantInv8x8To2x2LS_JPEG_16s8u_C1R
- // ippiDCTQuantInv8x8To4x4LS_JPEG_16s8u_C1R
- //
- // Purpose:
- // Inverse DCT transform, de-quantization and level shift and
- // DCT downsampling for 1/2 and 1/4 scale factor
- //
- //
- // Parameter:
- // pSrc - pointer to input 8x8 block of quantized DCT coefficients
- // pDst - pointer to output color component data
- // dstStep - line offset for destination data
- // pQuantInvTable - pointer to Quantization table
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // DCT is defined in ISO/IEC 10918-1,
- // Appendix A - Requrements and guidelines, Annex A, A.3.3 FDCT and IDCT.
- // Quantization is defined in ISO/IEC 10918-1,
- // Appendix A - Requrements and guidelines,
- // Annex A, A.3.4 DCT coefficient quantization and dequantization.
- // Level Shift is defined in ISO/IEC 10918-1,
- // Appendix A - Requrements and guidelines, Annex A, A.3.1 - Level Shift.
- */
- IPPAPI(IppStatus, ippiDCTQuantInv8x8To4x4LS_JPEG_16s8u_C1R,(
- const Ipp16s* pSrc,
- Ipp8u* pDst,
- int dstStep,
- const Ipp16u* pQuantInvTable))
- IPPAPI(IppStatus, ippiDCTQuantInv8x8To2x2LS_JPEG_16s8u_C1R,(
- const Ipp16s* pSrc,
- Ipp8u* pDst,
- int dstStep,
- const Ipp16u* pQuantInvTable))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDCTQuantInv8x8LS_JPEG_16s16u_C1R
- //
- // Purpose:
- // Inverse DCT transform, de-quantization and level shift
- // for 12-bit data
- //
- // Parameter:
- // pSrc - pointer to input 8x8 block of quantized DCT coefficients
- // pDst - pointer to output color component data
- // dstStep - line offset for destination data
- // pQuantInvTable - pointer to Quantization table
- //
- // Returns:
- // IppStatus
- */
- IPPAPI(IppStatus, ippiDCTQuantInv8x8LS_JPEG_16s16u_C1R, (
- const Ipp16s* pSrc,
- Ipp16u* pDst,
- int dstStep,
- const Ipp32f* pQuantInvTable))
- /* ///////////////////////////////////////////////////////////////////////////
- // DCT + DeQuantization Functions for decoder
- /////////////////////////////////////////////////////////////////////////// */
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDCTQuantInv8x8_JPEG_16s_C1
- //
- // Purpose:
- // Inverse DCT transform and de-quantization
- //
- // Parameter:
- // pSrc - pointer to source 8x8 block
- // pDst - pointer to output 8x8 block
- // pQuantInvTable - pointer to Quantization table
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiDCTQuantInv8x8_JPEG_16s_C1, (
- const Ipp16s* pSrc,
- Ipp16s* pDst,
- const Ipp16u* pQuantInvTable))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDCTQuantInv8x8_JPEG_16s_C1I
- //
- // Purpose:
- // Inverse DCT transform and de-quantization
- //
- // Parameter:
- // pSrcDst - pointer to 8x8 block
- // pQuantInvTable - pointer to Quantization table
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiDCTQuantInv8x8_JPEG_16s_C1I, (
- Ipp16s* pSrcDst,
- const Ipp16u* pQuantInvTable))
- /* ///////////////////////////////////////////////////////////////////////////
- // lossless JPEG specific functions
- /////////////////////////////////////////////////////////////////////////// */
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDiffPredFirstRow_JPEG_16s_C1
- //
- // Purpose:
- // differenciate row
- //
- // Parameters:
- // pSrc - pointer to input row of samples
- // pDst - pointer to output row of differences
- // width - width, in elements
- // P - precision of samples, in bits
- // Pt - point transform parameter
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiDiffPredFirstRow_JPEG_16s_C1, (
- const Ipp16s* pSrc,
- Ipp16s* pDst,
- int width,
- int P,
- int Pt))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDiffPredRow_JPEG_16s_C1
- //
- // Purpose:
- // differenciate row
- //
- // Parameters:
- // pSrc - pointer to input row of samples
- // pPrevRow - pointer to previous input row of samples
- // pDst - pointer to output row of differences
- // width - width, in elements
- // predictor - predictor
- // Pt - point transform parameter
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiDiffPredRow_JPEG_16s_C1, (
- const Ipp16s* pSrc,
- const Ipp16s* pPrevRow,
- Ipp16s* pDst,
- int width,
- int predictor))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiReconstructPredFirstRow_JPEG_16s_C1
- //
- // Purpose:
- // undifference row
- //
- // Parameters:
- // pSrc - pointer to input row of differences
- // pDst - pointer to output row of samples
- // width - width, in elements
- // P - precision of samples, in bits
- // Pt - point transform parameter
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiReconstructPredFirstRow_JPEG_16s_C1, (
- const Ipp16s* pSrc,
- Ipp16s* pDst,
- int width,
- int P,
- int Pt))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiReconstructPredRow_JPEG_16s_C1
- //
- // Purpose:
- // undifference row
- //
- // Parameters:
- // pSrc - pointer to input row of differences
- // pPrevRow - pointer to previous row of reconstructed samples
- // pDst - pointer to output row of samples
- // width - width, in elements
- // predictor - predictor
- // Pt - point transform parameter
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiReconstructPredRow_JPEG_16s_C1, (
- const Ipp16s* pSrc,
- const Ipp16s* pPrevRow,
- Ipp16s* pDst,
- int width,
- int predictor))
- /* ///////////////////////////////////////////////////////////////////////////
- // JPEG 2000 specific functions
- /////////////////////////////////////////////////////////////////////////// */
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiWTFwdRow_B53_JPEG2K_16s_C1R,
- // ippiWTFwdRow_B53_JPEG2K_32s_C1R
- //
- // Purpose:
- // Performs forward wavelet transform on image rows
- // (biorthogonal 5,3 filter bank for JPEG 2000 lossless mode).
- //
- // Parameters:
- // pSrc - pointer to source image;
- // srcStep - step in bytes to each next line of source image ROI;
- // pDstLow - pointer to low frequency component image ROI;
- // dstLowStep - step in bytes to each next line
- // of low frequency component image;
- // pDstHigh - pointer to high frequency component image ROI;
- // dstHighStep - step in bytes to each next line
- // of high frequency component image;
- // dstRoiSize - ROI size for destination images.
- // phase - relative position of high-pass and low-pass filters.
- //
- // Returns:
- // ippStsNoErr - Ok;
- // ippStsNullPtrErr - some of pointers are NULL;
- // ippStsSizeErr - the width or height of ROI is less or equal zero;
- //
- // Notes:
- // Not any fixed borders extension (wrap, symm.) will be applied!
- // Source image must have valid and accessible horizontal border data
- // outside of ROI.
- //
- // Only the same ROI sizes for destination images are supported.
- //
- // Source ROI size should be calculated by the following rule:
- // srcRoiSize.width = 2 * dstRoiSize.width;
- // srcRoiSize.height = dstRoiSize.height.
- //
- // If phase is ippWTFilterFirstLow, it's required to apply
- // left border of width 2 and right border of width 1.
- // If phase is ippWTFilterFirstHigh, it's required to apply
- // left border of width 1 and right border of width 2.
- //
- */
- IPPAPI(IppStatus, ippiWTFwdRow_B53_JPEG2K_16s_C1R, (
- const Ipp16s* pSrc,
- int srcStep,
- Ipp16s* pDstLow,
- int dstLowStep,
- Ipp16s* pDstHigh,
- int dstHighStep,
- IppiSize dstRoiSize,
- IppiWTFilterFirst phase))
- IPPAPI(IppStatus, ippiWTFwdRow_B53_JPEG2K_32s_C1R, (
- const Ipp32s* pSrc,
- int srcStep,
- Ipp32s* pDstLow,
- int dstLowStep,
- Ipp32s* pDstHigh,
- int dstHighStep,
- IppiSize dstRoiSize,
- IppiWTFilterFirst phase))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiWTFwdCol_B53_JPEG2K_16s_C1R,
- // ippiWTFwdCol_B53_JPEG2K_32s_C1R
- //
- // Purpose:
- // Performs forward wavelet transform on image columns
- // (biorthogonal 5,3 filter bank for JPEG 2000 lossless mode).
- //
- // Parameters:
- // pSrc - pointer to source image;
- // srcStep - step in bytes to each next line of source image ROI;
- // pDstLow - pointer to low frequency component image ROI;
- // dstLowStep - step in bytes to each next line
- // of low frequency component image;
- // pDstHigh - pointer to high frequency component image ROI;
- // dstHighStep - step in bytes to each next line
- // of high frequency component image;
- // dstRoiSize - ROI size for destination images.
- // phase - relative position of high-pass and low-pass filters.
- //
- // Returns:
- // ippStsNoErr - Ok;
- // ippStsNullPtrErr - some of pointers are NULL;
- // ippStsSizeErr - the width or height of ROI is less or equal zero;
- //
- // Notes:
- // Not any fixed borders extension (wrap, symm.) will be applied!
- // Source image must have valid and accessible horizontal border data
- // outside of ROI.
- //
- // Only the same ROI sizes for destination images are supported.
- //
- // Source ROI size should be calculated by the following rule:
- // srcRoiSize.width = dstRoiSize.width;
- // srcRoiSize.height = 2 * dstRoiSize.height.
- //
- // If phase is ippWTFilterFirstLow, it's required to apply
- // top border of width 2 and bottom border of width 1.
- // If phase is ippWTFilterFirstHigh, it's required to apply
- // top border of width 1 and bottom border of width 2.
- //
- */
- IPPAPI(IppStatus, ippiWTFwdCol_B53_JPEG2K_16s_C1R, (
- const Ipp16s* pSrc,
- int srcStep,
- Ipp16s* pDstLow,
- int dstLowStep,
- Ipp16s* pDstHigh,
- int dstHighStep,
- IppiSize dstRoiSize,
- IppiWTFilterFirst phase))
- IPPAPI(IppStatus, ippiWTFwdCol_B53_JPEG2K_32s_C1R, (
- const Ipp32s* pSrc,
- int srcStep,
- Ipp32s* pDstLow,
- int dstLowStep,
- Ipp32s* pDstHigh,
- int dstHighStep,
- IppiSize dstRoiSize,
- IppiWTFilterFirst phase))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiWTFwdColLift_B53_JPEG2K_16s_C1
- // ippiWTFwdColLift_B53_JPEG2K_32s_C1
- //
- // Purpose:
- // Low-level function for row-scan-based 2D WT implementation.
- // to perform single step of forward wavelet transform on image columns
- // (reversible 5,3 filter bank for JPEG 2000 lossless mode),
- //
- //
- // Parameters:
- // pSrc0 - pointer to source image row #0;
- // pSrc1 - pointer to source image row #1;
- // pSrc2 - pointer to source image row #2;
- //
- // pDstLow0 - pointer to low frequency component row #0;
- // pSrcHigh0 - pointer to high frequency component row #0;
- // pDstHigh1 - pointer to high frequency component row #1;
- //
- // width - width of rows.
- //
- // Returns:
- // ippStsNoErr - Ok;
- // ippStsNullPtrErr - some of pointers are NULL;
- // ippStsSizeErr - the width rows is less or equal zero.
- //
- // Notes:
- //
- // For each row point this function calculates:
- // pDstHigh1[i] = pSrc1[i] - FLOOR( (pSrc0 [i] + pSrc2 [i] ) / 2 );
- // pDstLow0 [i] = pSrc0[i] + FLOOR( (pSrcHigh0[i] + pDstHigh1[i] + 2) / 4 );
- //
- */
- IPPAPI(IppStatus, ippiWTFwdColLift_B53_JPEG2K_16s_C1, (
- const Ipp16s* pSrc0,
- const Ipp16s* pSrc1,
- const Ipp16s* pSrc2,
- Ipp16s* pDstLow0,
- const Ipp16s* pSrcHigh0,
- Ipp16s* pDstHigh1,
- int width))
- IPPAPI(IppStatus, ippiWTFwdColLift_B53_JPEG2K_32s_C1, (
- const Ipp32s* pSrc0,
- const Ipp32s* pSrc1,
- const Ipp32s* pSrc2,
- Ipp32s* pDstLow0,
- const Ipp32s* pSrcHigh0,
- Ipp32s* pDstHigh1,
- int width))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiWTInvRow_B53_JPEG2K_16s_C1R,
- // ippiWTInvRow_B53_JPEG2K_32s_C1R
- //
- // Purpose:
- // Performs inverse wavelet transform on image rows
- // (biorthogonal 5,3 filter bank for JPEG 2000 lossless mode).
- //
- // Parameters:
- // pSrcLow - pointer to low frequency component image ROI;
- // srcLowStep - step in bytes to each next line
- // of low frequency component image;
- // pSrcHigh - pointer to high frequency component image ROI;
- // srcHighStep - step in bytes to each next line
- // of high frequency component image;
- // srcRoiSize - step in bytes to each next line
- // of high frequency component image;
- // pDst - destination image ROI;
- // dstStep - step in bytes to each next line
- // of source image ROI;
- // phase - relative position of high-pass and low-pass filters.
- //
- // Returns:
- // ippStsNoErr - Ok;
- // ippStsNullPtrErr - some of pointers are NULL;
- // ippStsSizeErr - the width or height of ROI is less or equal zero;
- //
- // Notes:
- // Not any fixed borders extension (wrap, symm.) will be applied!
- // Source images must have valid and accessible horizontal border data
- // outside of ROI.
- //
- // Only the same ROI sizes for source images are supported.
- //
- // Destinageion ROI size should be calculated by the following rule:
- // dstRoiSize.width = 2 * dstRoiSize.width;
- // dstRoiSize.height = dstRoiSize.height.
- //
- // For low frequency component:
- // if phase is ippWTFilterFirstLow, it's required to apply
- // left border of width 0 and right border of width 1.
- // If phase is ippWTFilterFirstHigh, it's required to apply
- // left border of width 1 and right border of width 0.
- // For high frequency component it's always required to have
- // left and right border of equal width 1.
- //
- */
- IPPAPI(IppStatus, ippiWTInvRow_B53_JPEG2K_16s_C1R, (
- const Ipp16s* pSrcLow,
- int srcLowStep,
- const Ipp16s* pSrcHigh,
- int srcHighStep,
- IppiSize srcRoiSize,
- Ipp16s* pDst,
- int dstStep,
- IppiWTFilterFirst phase))
- IPPAPI(IppStatus, ippiWTInvRow_B53_JPEG2K_32s_C1R, (
- const Ipp32s* pSrcLow,
- int srcLowStep,
- const Ipp32s* pSrcHigh,
- int srcHighStep,
- IppiSize srcRoiSize,
- Ipp32s* pDst,
- int dstStep,
- IppiWTFilterFirst phase))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiWTInvCol_B53_JPEG2K_16s_C1R,
- // ippiWTInvCol_B53_JPEG2K_32s_C1R
- //
- // Purpose:
- // Performs inverse wavelet transform on image columns
- // (biorthogonal 5,3 filter bank for JPEG 2000 lossless mode).
- //
- // Parameters:
- // pSrcLow - pointer to low frequency component image ROI;
- // srcLowStep - step in bytes to each next line
- // of low frequency component image;
- // pSrcHigh - pointer to high frequency component image ROI;
- // srcHighStep - step in bytes to each next line
- // of high frequency component image;
- // srcRoiSize - step in bytes to each next line
- // of high frequency component image;
- // pDst - destination image ROI;
- // dstStep - step in bytes to each next line
- // of source image ROI;
- // phase - relative position of high-pass and low-pass filters.
- //
- // Returns:
- // ippStsNoErr - Ok;
- // ippStsNullPtrErr - any of the pointers is NULL;
- // ippStsSizeErr - the width or height of ROI is less or equal zero;
- //
- // Notes:
- // Not any fixed borders extension (wrap, symm.) will be applied!
- // Source images must have valid and accessible horizontal border data
- // outside of ROI.
- //
- // Only the same ROI sizes for source images are supported.
- //
- // Destination ROI size should be calculated by the following rule:
- // dstRoiSize.width = dstRoiSize.width;
- // dstRoiSize.height = dstRoiSize.height * 2.
- //
- // For low frequency component:
- // if phase is ippWTFilterFirstLow, it's required to apply
- // left border of width 0 and right border of width 1.
- // If phase is ippWTFilterFirstHigh, it's required to apply
- // left border of width 1 and right border of width 0.
- // For high frequency component it's always required to have
- // left and right border of equal width 1.
- //
- */
- IPPAPI(IppStatus, ippiWTInvCol_B53_JPEG2K_16s_C1R, (
- const Ipp16s* pSrcLow,
- int srcLowStep,
- const Ipp16s* pSrcHigh,
- int srcHighStep,
- IppiSize srcRoiSize,
- Ipp16s* pDst,
- int dstStep,
- IppiWTFilterFirst phase))
- IPPAPI(IppStatus, ippiWTInvCol_B53_JPEG2K_32s_C1R, (
- const Ipp32s* pSrcLow,
- int srcLowStep,
- const Ipp32s* pSrcHigh,
- int srcHighStep,
- IppiSize srcRoiSize,
- Ipp32s* pDst,
- int dstStep,
- IppiWTFilterFirst phase))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiWTInvColLift_B53_JPEG2K_16s_C1
- // ippiWTInvColLift_B53_JPEG2K_32s_C1
- //
- // Purpose:
- // Low-level function for row-scan-based 2D WT implementation.
- // to perform single step of inverse wavelet transform on image columns
- // (reversible 5,3 filter bank for JPEG 2000 lossless mode),
- //
- //
- // Parameters:
- //
- // pSrcLow0 - pointer to low frequency component row #0;
- // pSrcHigh0 - pointer to high frequency component row #0;
- // pSrcHigh1 - pointer to high frequency component row #1;
- //
- // pSrc0 - pointer to reconstructed image row #0;
- // pDst1 - pointer to reconstructed image row #1;
- // pDst2 - pointer to reconstructed image row #2;
- // width - width of rows.
- //
- // Returns:
- // ippStsNoErr - Ok;
- // ippStsNullPtrErr - some of pointers are NULL;
- // ippStsSizeErr - the width rows is less or equal zero.
- //
- // Notes:
- //
- // For each row point this function calculates:
- // pDst2[i] = pSrcLow0[i] - FLOOR( (pSrcHigh0[i] + pSrcHigh1[i] + 2) / 4 );
- // pDst1[i] = highRow0[i] + FLOOR( (pSrc0 [i] + pDst2 [i] ) / 2 );
- //
- */
- IPPAPI(IppStatus, ippiWTInvColLift_B53_JPEG2K_16s_C1, (
- const Ipp16s* pSrcLow0,
- const Ipp16s* pSrcHigh0,
- const Ipp16s* pSrcHigh1,
- const Ipp16s* pSrc0,
- Ipp16s* pDst1,
- Ipp16s* pDst2,
- int width))
- IPPAPI(IppStatus, ippiWTInvColLift_B53_JPEG2K_32s_C1, (
- const Ipp32s* pSrcLow0,
- const Ipp32s* pSrcHigh0,
- const Ipp32s* pSrcHigh1,
- const Ipp32s* pSrc0,
- Ipp32s* pDst1,
- Ipp32s* pDst2,
- int width))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiWTFwdRow_D97_JPEG2K_16s_C1R
- // ippiWTFwdRow_D97_JPEG2K_32s_C1R
- // ippiWTFwdRow_D97_JPEG2K_32f_C1R
- //
- // Purpose:
- // Performs forward wavelet transform on image rows
- // (Cohen-Daubechies-Feauveau 9,7 filter bank for JPEG 2000 lossy mode).
- //
- // Parameters:
- // pSrc - pointer to source image;
- // srcStep - step in bytes to each next line of source image ROI;
- // pDstLow - pointer to low frequency component image ROI;
- // dstLowStep - step in bytes to each next line
- // of low frequency component image;
- // pDstHigh - pointer to high frequency component image ROI;
- // dstHighStep - step in bytes to each next line
- // of high frequency component image;
- // dstRoiSize - ROI size for destination images.
- // phase - relative position of high-pass and low-pass filters.
- //
- // Returns:
- // ippStsNoErr - Ok;
- // ippStsNullPtrErr - some of pointers are NULL;
- // ippStsSizeErr - the width or height of ROI is less or equal zero;
- //
- // Notes:
- // Not any fixed borders extension (wrap, symm.) will be applied!
- // Source image must have valid and accessible horizontal border data
- // outside of ROI.
- //
- // Only the same ROI sizes for destination images are supported.
- //
- // Source ROI size should be calculated by the following rule:
- // srcRoiSize.width = 2 * dstRoiSize.width;
- // srcRoiSize.height = dstRoiSize.height.
- //
- // If phase is ippWTFilterFirstLow, it's required to apply
- // left border of width 4 and right border of width 3.
- // If phase is ippWTFilterFirstHigh, it's required to apply
- // left border of width 3 and right border of width 4.
- //
- */
- IPPAPI(IppStatus, ippiWTFwdRow_D97_JPEG2K_16s_C1R, (
- const Ipp16s* pSrc,
- int srcStep,
- Ipp16s* pDstLow,
- int dstLowStep,
- Ipp16s* pDstHigh,
- int dstHighStep,
- IppiSize dstRoiSize,
- IppiWTFilterFirst phase))
- IPPAPI(IppStatus, ippiWTFwdRow_D97_JPEG2K_32s_C1R, (
- const Ipp32s* pSrc,
- int srcStep,
- Ipp32s* pDstLow,
- int dstLowStep,
- Ipp32s* pDstHigh,
- int dstHighStep,
- IppiSize dstRoiSize,
- IppiWTFilterFirst phase))
- IPPAPI(IppStatus, ippiWTFwdRow_D97_JPEG2K_32f_C1R, (
- const Ipp32f* pSrc,
- int srcStep,
- Ipp32f* pDstLow,
- int dstLowStep,
- Ipp32f* pDstHigh,
- int dstHighStep,
- IppiSize dstRoiSize,
- IppiWTFilterFirst phase))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiWTFwdCol_D97_JPEG2K_32f_C1R
- //
- // Purpose:
- // Performs forward wavelet transform on image columns
- // (Cohen-Daubechies-Feauveau 9,7 filter bank for JPEG 2000 lossy mode).
- //
- // Parameters:
- // pSrc - pointer to source image;
- // srcStep - step in bytes to each next line of source image ROI;
- // pDstLow - pointer to low frequency component image ROI;
- // dstLowStep - step in bytes to each next line
- // of low frequency component image;
- // pDstHigh - pointer to high frequency component image ROI;
- // dstHighStep - step in bytes to each next line
- // of high frequency component image;
- // dstRoiSize - ROI size for destination images.
- // phase - relative position of high-pass and low-pass filters.
- //
- // Returns:
- // ippStsNoErr - Ok;
- // ippStsNullPtrErr - some of pointers are NULL;
- // ippStsSizeErr - the width or height of ROI is less or equal zero;
- //
- // Notes:
- // Not any fixed borders extension (wrap, symm.) will be applied!
- // Source image must have valid and accessible horizontal border data
- // outside of ROI.
- //
- // Only the same ROI sizes for destination images are supported.
- //
- // Source ROI size should be calculated by the following rule:
- // srcRoiSize.width = dstRoiSize.width;
- // srcRoiSize.height = 2 * dstRoiSize.height.
- //
- // If phase is ippWTFilterFirstLow, it's required to apply
- // top border of width 4 and bottom border of width 3.
- // If phase is ippWTFilterFirstHigh, it's required to apply
- // top border of width 3 and bottom border of width 4.
- //
- */
- IPPAPI(IppStatus, ippiWTFwdCol_D97_JPEG2K_32f_C1R, (
- const Ipp32f* pSrc,
- int srcStep,
- Ipp32f* pDstLow,
- int dstLowStep,
- Ipp32f* pDstHigh,
- int dstHighStep,
- IppiSize dstRoiSize,
- IppiWTFilterFirst phase))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiWTFwdColLift_D97_JPEG2K_16s_C1
- // ippiWTFwdColLift_D97_JPEG2K_32s_C1
- // ippiWTFwdColLift_D97_JPEG2K_32f_C1
- //
- // Purpose:
- // Low-level function for row-scan-based 2D WT implementation.
- // to perform single step of forward wavelet transform on image columns
- // (reversible 5,3 filter bank for JPEG 2000 lossless mode),
- //
- //
- // Parameters:
- // pSrc0 - pointer to source image row #0;
- // pSrc1 - pointer to source image row #1;
- // pSrc2 - pointer to source image row #2;
- //
- // pSrcDstLow0 - pointer to low frequency component row #0;
- // pDstLow1 - pointer to low frequency component row #1;
- // pSrcDstHigh0 - pointer to high frequency component row #0;
- // pSrcDstHigh1 - pointer to high frequency component row #1;
- // pDstHigh2 - pointer to high frequency component row #2;
- //
- // width - width of rows.
- //
- // Returns:
- // ippStsNoErr - Ok;
- // ippStsNullPtrErr - some of pointers are NULL;
- // ippStsSizeErr - the width rows is less or equal zero.
- //
- // Notes:
- //
- // For each row point this function calculates:
- // pDstHigh2 [i] = pSrc1[i] + ALPHA * (pSrc0 [i] + pSrc2 [i]);
- // pDstLow1 [i] = pSrc0[i] + BETA * (pSrcDstHigh1[i] + pDstHigh2[i]);
- // pSrcDstHigh1[i] += GAMMA * (pSrcDstLow0 [i] + pDstLow1 [i]);
- // pSrcDstLow0 [i] += DELTA * (pSrcDstHigh0[i] + pSrcDstHigh1[i]);
- // pSrcDstLow0 [i] *= K;
- // pSrcDstHigh0[i] *= 1. / K;
- //
- */
- IPPAPI(IppStatus, ippiWTFwdColLift_D97_JPEG2K_16s_C1, (
- const Ipp16s* pSrc0,
- const Ipp16s* pSrc1,
- const Ipp16s* pSrc2,
- Ipp16s* pSrcDstLow0,
- Ipp16s* pDstLow1,
- Ipp16s* pSrcDstHigh0,
- Ipp16s* pSrcDstHigh1,
- Ipp16s* pDstHigh2,
- int width))
- IPPAPI(IppStatus, ippiWTFwdColLift_D97_JPEG2K_32s_C1, (
- const Ipp32s* pSrc0,
- const Ipp32s* pSrc1,
- const Ipp32s* pSrc2,
- Ipp32s* pSrcDstLow0,
- Ipp32s* pDstLow1,
- Ipp32s* pSrcDstHigh0,
- Ipp32s* pSrcDstHigh1,
- Ipp32s* pDstHigh2,
- int width))
- IPPAPI(IppStatus, ippiWTFwdColLift_D97_JPEG2K_32f_C1, (
- const Ipp32f* pSrc0,
- const Ipp32f* pSrc1,
- const Ipp32f* pSrc2,
- Ipp32f* pSrcDstLow0,
- Ipp32f* pDstLow1,
- Ipp32f* pSrcDstHigh0,
- Ipp32f* pSrcDstHigh1,
- Ipp32f* pDstHigh2,
- int width))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiWTInvRow_D97_JPEG2K_16s_C1R,
- // ippiWTInvRow_D97_JPEG2K_32s_C1R,
- // ippiWTInvRow_D97_JPEG2K_32f_C1R
- //
- // Purpose:
- // Performs inverse wavelet transform on image rows
- // (Cohen-Daubechies-Feauveau 9,7 filter bank for JPEG 2000 lossy mode).
- //
- // Parameters:
- // pSrcLow - pointer to low frequency component image ROI;
- // srcLowStep - step in bytes to each next line
- // of low frequency component image;
- // pSrcHigh - pointer to high frequency component image ROI;
- // srcHighStep - step in bytes to each next line
- // of high frequency component image;
- // srcRoiSize - step in bytes to each next line
- // of high frequency component image;
- // pDst - destination image ROI;
- // dstStep - step in bytes to each next line
- // of source image ROI;
- // phase - relative position of high-pass and low-pass filters.
- //
- // Returns:
- // ippStsNoErr - Ok;
- // ippStsNullPtrErr - some of pointers are NULL;
- // ippStsSizeErr - the width or height of ROI is less or equal zero;
- //
- // Notes:
- // Not any fixed borders extension (wrap, symm.) will be applied!
- // Source images must have valid and accessible horizontal border data
- // outside of ROI.
- //
- // Only the same ROI sizes for source images are supported.
- //
- // Destinageion ROI size should be calculated by the following rule:
- // dstRoiSize.width = 2 * dstRoiSize.width;
- // dstRoiSize.height = dstRoiSize.height.
- //
- // For low frequency component:
- // if phase is ippWTFilterFirstLow, it's required to apply
- // left border of width 1 and right border of width 2.
- // If phase is ippWTFilterFirstHigh, it's required to apply
- // left border of width 2 and right border of width 1.
- // For high frequency component it's always required to have
- // left and right border of equal width 2.
- //
- */
- IPPAPI(IppStatus, ippiWTInvRow_D97_JPEG2K_16s_C1R, (
- const Ipp16s* pSrcLow,
- int srcLowStep,
- const Ipp16s* pSrcHigh,
- int srcHighStep,
- IppiSize srcRoiSize,
- Ipp16s* pDst,
- int dstStep,
- IppiWTFilterFirst phase))
- IPPAPI(IppStatus, ippiWTInvRow_D97_JPEG2K_32s_C1R, (
- const Ipp32s* pSrcLow,
- int srcLowStep,
- const Ipp32s* pSrcHigh,
- int srcHighStep,
- IppiSize srcRoiSize,
- Ipp32s* pDst,
- int dstStep,
- IppiWTFilterFirst phase))
- IPPAPI(IppStatus, ippiWTInvRow_D97_JPEG2K_32f_C1R, (
- const Ipp32f* pSrcLow,
- int srcLowStep,
- const Ipp32f* pSrcHigh,
- int srcHighStep,
- IppiSize srcRoiSize,
- Ipp32f* pDst,
- int dstStep,
- IppiWTFilterFirst phase))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiWTInvCol_D97_JPEG2K_32f_C1R
- //
- // Purpose:
- // Performs inverse wavelet transform on image columns
- // (Cohen-Daubechies-Feauveau 9,7 filter bank for JPEG 2000 lossy mode).
- //
- // Parameters:
- // pSrcLow - pointer to low frequency component image ROI;
- // srcLowStep - step in bytes to each next line
- // of low frequency component image;
- // pSrcHigh - pointer to high frequency component image ROI;
- // srcHighStep - step in bytes to each next line
- // of high frequency component image;
- // srcRoiSize - step in bytes to each next line
- // of high frequency component image;
- // pDst - destination image ROI;
- // dstStep - step in bytes to each next line
- // of source image ROI;
- // phase - relative position of high-pass and low-pass filters.
- //
- // Returns:
- // ippStsNoErr - Ok;
- // ippStsNullPtrErr - any of the pointers is NULL;
- // ippStsSizeErr - the width or height of ROI is less or equal zero;
- //
- // Notes:
- // Not any fixed borders extension (wrap, symm.) will be applied!
- // Source images must have valid and accessible horizontal border data
- // outside of ROI.
- //
- // Only the same ROI sizes for source images are supported.
- //
- // Destination ROI size should be calculated by the following rule:
- // dstRoiSize.width = dstRoiSize.width;
- // dstRoiSize.height = dstRoiSize.height * 2.
- //
- // For low frequency component:
- // if phase is ippWTFilterFirstLow, it's required to apply
- // left border of width 1 and right border of width 2.
- // If phase is ippWTFilterFirstHigh, it's required to apply
- // top border of width 2 and bottom border of width 1.
- // For high frequency component it's always required to have
- // left and right border of equal width 2.
- //
- */
- IPPAPI(IppStatus, ippiWTInvCol_D97_JPEG2K_32f_C1R, (
- const Ipp32f* pSrcLow,
- int srcLowStep,
- const Ipp32f* pSrcHigh,
- int srcHighStep,
- IppiSize srcRoiSize,
- Ipp32f* pDst,
- int dstStep,
- IppiWTFilterFirst phase))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiWTInvColLift_D97_JPEG2K_16s_C1
- // ippiWTInvColLift_D97_JPEG2K_32s_C1
- // ippiWTInvColLift_D97_JPEG2K_32f_C1
- //
- // Purpose:
- // Low-level function for row-scan-based 2D WT implementation.
- // to perform single step of forward wavelet transform on image columns
- // (reversible 5,3 filter bank for JPEG 2000 lossless mode),
- //
- //
- // Parameters:
- // pSrcLow0 - pointer to low frequency component row #0;
- // pSrcHigh0 - pointer to high frequency component row #0;
- // pSrcHigh1 - pointer to high frequency component row #1;
- //
- // pSrc0 - pointer to reconstructed image row #0;
- // pSrcDst1 - pointer to reconstructed image row #1;
- // pSrcDst2 - pointer to reconstructed image row #2;
- // pDst3 - pointer to reconstructed image row #3;
- // pDst4 - pointer to reconstructed image row #4;
- //
- // width - width of rows.
- //
- // Returns:
- // ippStsNoErr - Ok;
- // ippStsNullPtrErr - some of pointers are NULL;
- // ippStsSizeErr - the width rows is less or equal zero.
- //
- // Notes:
- //
- // For each row point this function calculates:
- // pDst4 [i] = pSrcLow0 [i] * K - DELTA * 1. / K * (pSrcHigh0[i] + pSrcHigh1[i]);
- // pDst3 [i] = pSrcHigh0[i] * 1. / K - GAMMA * (pSrcDst2 [i] + pDst4 [i]);
- // pSrcDst2[i] -= BETA * (pSrcDst1[i] + pDst3 [i]);
- // pSrcDst1[i] -= ALPHA * (pSrc0 [i] + pSrcDst2[i]);
- //
- */
- IPPAPI(IppStatus, ippiWTInvColLift_D97_JPEG2K_16s_C1, (
- const Ipp16s* pSrcLow0,
- const Ipp16s* pSrcHigh0,
- const Ipp16s* pSrcHigh1,
- const Ipp16s* pSrc0,
- Ipp16s* pSrcDst1,
- Ipp16s* pSrcDst2,
- Ipp16s* pDst3,
- Ipp16s* pDst4,
- int width))
- IPPAPI(IppStatus, ippiWTInvColLift_D97_JPEG2K_32s_C1, (
- const Ipp32s* pSrcLow0,
- const Ipp32s* pSrcHigh0,
- const Ipp32s* pSrcHigh1,
- const Ipp32s* pSrc0,
- Ipp32s* pSrcDst1,
- Ipp32s* pSrcDst2,
- Ipp32s* pDst3,
- Ipp32s* pDst4,
- int width))
- IPPAPI(IppStatus, ippiWTInvColLift_D97_JPEG2K_32f_C1, (
- const Ipp32f* pSrcLow0,
- const Ipp32f* pSrcHigh0,
- const Ipp32f* pSrcHigh1,
- const Ipp32f* pSrc0,
- Ipp32f* pSrcDst1,
- Ipp32f* pSrcDst2,
- Ipp32f* pDst3,
- Ipp32f* pDst4,
- int width))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiWTGetBufSize_B53_JPEG2K_16s_C1IR,
- // ippiWTGetBufSize_B53_JPEG2K_32s_C1IR
- //
- // Purpose:
- // Return size of buffer for JPEG2000 tile-oriented wavelet transforms.
- //
- // Parameters:
- // pTileRect - pointer to tile rectangle structure
- // pSize - pointer to variable to write size of buffer
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiWTGetBufSize_B53_JPEG2K_16s_C1IR, (
- const IppiRect* pTileRect,
- int* pSize))
- IPPAPI(IppStatus, ippiWTGetBufSize_B53_JPEG2K_32s_C1IR, (
- const IppiRect* pTileRect,
- int* pSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiWTFwd_B53_JPEG2K_16s_C1IR,
- // ippiWTFwd_B53_JPEG2K_32s_C1IR
- //
- // Purpose:
- // JPEG2000 tile-oriented forward wavelet transforms.
- //
- // Parameters:
- // pSrcDstTile - pointer to image buffer
- // srcDstStep - step in bytes to each next line of image buffer
- // pTileRect - pointer to tile rectangle structure
- // pBuffer - pointer to work buffer
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiWTFwd_B53_JPEG2K_16s_C1IR, (
- Ipp16s* pSrcDstTile,
- int srcDstStep,
- const IppiRect* pTileRect,
- Ipp8u* pBuffer))
- IPPAPI(IppStatus, ippiWTFwd_B53_JPEG2K_32s_C1IR, (
- Ipp32s* pSrcDstTile,
- int srcDstStep,
- const IppiRect* pTileRect,
- Ipp8u* pBuffer))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiWTInv_B53_JPEG2K_16s_C1IR,
- // ippiWTInv_B53_JPEG2K_32s_C1IR
- //
- // Purpose:
- // JPEG2000 tile-oriented forward wavelet transforms.
- //
- // Parameters:
- // pSrcDstTile - pointer to image buffer
- // srcDstStep - step in bytes to each next line of image buffer
- // pTileRect - pointer to tile rectangle structure
- // pBuffer - pointer to work buffer
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiWTInv_B53_JPEG2K_16s_C1IR, (
- Ipp16s* pSrcDstTile,
- int srcDstStep,
- const IppiRect* pTileRect,
- Ipp8u* pBuffer))
- IPPAPI(IppStatus, ippiWTInv_B53_JPEG2K_32s_C1IR, (
- Ipp32s* pSrcDstTile,
- int srcDstStep,
- const IppiRect* pTileRect,
- Ipp8u* pBuffer))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiWTGetBufSize_D97_JPEG2K_16s_C1IR,
- // ippiWTGetBufSize_D97_JPEG2K_32s_C1IR
- //
- // Purpose:
- // Return size of buffer for JPEG2000 tile-oriented wavelet transforms.
- //
- // Parameters:
- // pTileRect - pointer to tile rectangle structure
- // pSize - pointer to variable to write size of buffer
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiWTGetBufSize_D97_JPEG2K_16s_C1IR, (
- const IppiRect* pTileRect,
- int* pSize))
- IPPAPI(IppStatus, ippiWTGetBufSize_D97_JPEG2K_32s_C1IR, (
- const IppiRect* pTileRect,
- int* pSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiWTFwd_D97_JPEG2K_16s_C1IR,
- // ippiWTFwd_D97_JPEG2K_32s_C1IR
- //
- // Purpose:
- // JPEG2000 tile-oriented forward wavelet transforms.
- //
- // Parameters:
- // pSrcDstTile - pointer to image buffer
- // srcDstStep - step in bytes to each next line of image buffer
- // pTileRect - pointer to tile rectangle structure
- // pBuffer - pointer to work buffer
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiWTFwd_D97_JPEG2K_16s_C1IR, (
- Ipp16s* pSrcDstTile,
- int srcDstStep,
- const IppiRect* pTileRect,
- Ipp8u* pBuffer))
- IPPAPI(IppStatus, ippiWTFwd_D97_JPEG2K_32s_C1IR, (
- Ipp32s* pSrcDstTile,
- int srcDstStep,
- const IppiRect* pTileRect,
- Ipp8u* pBuffer))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiWTInv_D97_JPEG2K_16s_C1IR,
- // ippiWTInv_D97_JPEG2K_32s_C1IR
- //
- // Purpose:
- // JPEG2000 tile-oriented forward wavelet transforms.
- //
- // Parameters:
- // pSrcDstTile - pointer to image buffer
- // srcDstStep - step in bytes to each next line of image buffer
- // pTileRect - pointer to tile rectangle structure
- // pBuffer - pointer to work buffer
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiWTInv_D97_JPEG2K_16s_C1IR, (
- Ipp16s* pSrcDstTile,
- int srcDstStep,
- const IppiRect* pTileRect,
- Ipp8u* pBuffer))
- IPPAPI(IppStatus, ippiWTInv_D97_JPEG2K_32s_C1IR, (
- Ipp32s* pSrcDstTile,
- int srcDstStep,
- const IppiRect* pTileRect,
- Ipp8u* pBuffer))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiWTGetBufSize_B53_JPEG2K_16s_C1R,
- // ippiWTGetBufSize_B53_JPEG2K_32s_C1R
- //
- // Purpose:
- // Return size of buffer for JPEG2000 tile-oriented wavelet transforms.
- //
- // Parameters:
- // pTileRect - pointer to tile rectangle structure
- // pSize - pointer to variable to write size of buffer
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiWTGetBufSize_B53_JPEG2K_16s_C1R, (
- const IppiRect* pTileRect,
- int* pSize))
- IPPAPI(IppStatus, ippiWTGetBufSize_B53_JPEG2K_32s_C1R, (
- const IppiRect* pTileRect,
- int* pSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiWTFwd_B53_JPEG2K_16s_C1R,
- // ippiWTFwd_B53_JPEG2K_32s_C1R
- //
- // Purpose:
- // JPEG2000 tile-oriented forward wavelet transforms.
- //
- // Parameters:
- // pSrc - pointer to source image buffer
- // srcStep - step in bytes to each next line of source image buffer
- // pTileRect - pointer to tile rectangle structure
- // pDst[4] - pointer to destination image
- // for each component (in order LxLy, LxHy, HxLy, HxHy)
- // dstStep[4] - step in bytes to each next line
- // for each destination image buffer
- // pBuffer - pointer to buffer
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiWTFwd_B53_JPEG2K_16s_C1R, (
- const Ipp16s* pSrc,
- int srcStep,
- const IppiRect* pTileRect,
- Ipp16s* pDst[4],
- int dstStep[4],
- Ipp8u* pBuffer))
- IPPAPI(IppStatus, ippiWTFwd_B53_JPEG2K_32s_C1R, (
- const Ipp32s* pSrc,
- int srcStep,
- const IppiRect* pTileRect,
- Ipp32s* pDst[4],
- int dstStep[4],
- Ipp8u* pBuffer))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiWTInv_B53_JPEG2K_16s_C1R,
- // ippiWTInv_B53_JPEG2K_32s_C1R
- //
- // Purpose:
- // JPEG2000 tile-oriented forward wavelet transforms.
- //
- // Parameters:
- // pSrc[4] - pointer to source image
- // for each component (in order LxLy, LxHy, HxLy, HxHy)
- // srcStep[4] - step in bytes to each next line
- // for each source image buffer
- // pDst - pointer to destination image buffer
- // srcStep - step in bytes to each next line of destination image buffer
- // pTileRect - pointer to tile rectangle structure
- // pBuffer - pointer to buffer
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiWTInv_B53_JPEG2K_16s_C1R, (
- const Ipp16s* pSrc[4],
- int srcStep[4],
- Ipp16s* pDst,
- int dstStep,
- const IppiRect* pTileRect,
- Ipp8u* pBuffer))
- IPPAPI(IppStatus, ippiWTInv_B53_JPEG2K_32s_C1R, (
- const Ipp32s* pSrc[4],
- int srcStep[4],
- Ipp32s* pDst,
- int dstStep,
- const IppiRect* pTileRect,
- Ipp8u* pBuffer))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiWTGetBufSize_D97_JPEG2K_16s_C1R,
- // ippiWTGetBufSize_D97_JPEG2K_32s_C1R
- //
- // Purpose:
- // Return size of buffer for JPEG2000 tile-oriented wavelet transforms.
- //
- // Parameters:
- // pTileRect - pointer to tile rectangle structure
- // pSize - pointer to variable to write size of buffer
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiWTGetBufSize_D97_JPEG2K_16s_C1R, (
- const IppiRect* pTileRect,
- int* pSize))
- IPPAPI(IppStatus, ippiWTGetBufSize_D97_JPEG2K_32s_C1R, (
- const IppiRect* pTileRect,
- int* pSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiWTFwd_D97_JPEG2K_16s_C1R,
- // ippiWTFwd_D97_JPEG2K_32s_C1R
- //
- // Purpose:
- // JPEG2000 tile-oriented forward wavelet transforms.
- //
- // Parameters:
- // pSrc - pointer to source image buffer
- // srcStep - step in bytes to each next line of source image buffer
- // pDst[4] - pointer to destination image
- // for each component (in order LxLy, LxHy, HxLy, HxHy)
- // dstStep[4] - step in bytes to each next line
- // for each destination image buffer
- // pTileRect - pointer to tile rectangle structure
- // pBuffer - pointer to buffer
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiWTFwd_D97_JPEG2K_16s_C1R, (
- const Ipp16s* pSrc,
- int srcStep,
- const IppiRect* pTileRect,
- Ipp16s* pDst[4],
- int dstStep[4],
- Ipp8u* pBuffer))
- IPPAPI(IppStatus, ippiWTFwd_D97_JPEG2K_32s_C1R, (
- const Ipp32s* pSrc,
- int srcStep,
- const IppiRect* pTileRect,
- Ipp32s* pDst[4],
- int dstStep[4],
- Ipp8u* pBuffer))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiWTInv_D97_JPEG2K_16s_C1R
- // ippiWTInv_D97_JPEG2K_32s_C1R
- //
- // Purpose:
- // JPEG2000 tile-oriented forward wavelet transforms.
- //
- // Parameters:
- // pSrc[4] - pointer to source image
- // for each component (in order LxLy, LxHy, HxLy, HxHy)
- // srcStep[4] - step in bytes to each next line
- // for each source image buffer
- // pDst - pointer to destination image buffer
- // srcStep - step in bytes to each next line of destination image buffer
- // pTileRect - pointer to tile rectangle structure
- // pBuffer - pointer to buffer
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiWTInv_D97_JPEG2K_16s_C1R, (
- const Ipp16s* pSrc[4],
- int srcStep[4],
- Ipp16s* pDst,
- int dstStep,
- const IppiRect* pTileRect,
- Ipp8u* pBuffer))
- IPPAPI(IppStatus, ippiWTInv_D97_JPEG2K_32s_C1R, (
- const Ipp32s* pSrc[4],
- int srcStep[4],
- Ipp32s* pDst,
- int dstStep,
- const IppiRect* pTileRect,
- Ipp8u* pBuffer))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiEncodeInitAlloc_JPEG2K
- //
- // Purpose:
- // Allocate and initialize entropy encoder state structure.
- //
- // Parameters:
- // pState - pointer to the variable that returns the pointer
- // to the allocated and initialized encoder state structure,
- // codeBlockMaxSize - maximal size of codeblock for coding.
- //
- // Returns:
- // ippStsNoErr - Ok,
- // ippStsSizeErr - error in size of codeblock,
- // ippStsMemAllocErr - no memory to allocate state structure.
- //
- */
- IPPAPI(IppStatus, ippiEncodeInitAlloc_JPEG2K, (
- IppiEncodeState_JPEG2K** pState,
- IppiSize codeBlockMaxSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiEncodeFree_JPEG2K
- //
- // Purpose:
- // Free and deallocate entropy encoder state structure.
- //
- // Parameters:
- // pState - pointer to allocated and initialized encoder state structure,
- //
- // Returns:
- // ippStsNoErr - Ok,
- // ippStsNullPtrErr - Pointer to the context structure is NULL;
- // ippStsContextMatchErr - Mismatch context structure.
- //
- */
- IPPAPI(IppStatus, ippiEncodeFree_JPEG2K, (
- IppiEncodeState_JPEG2K* pState))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiEncodeLoadCodeBlock_JPEG2K_32s_C1R
- //
- // Purpose:
- // First coding procedure that prepare data for coding.
- //
- // Parameters:
- // pSrc - pointer to source codeblock,
- // srcStep - step in bytes to each next line of codeblock,
- // codeBlockSize - size of codeblock,
- // pState - pointer to allocated and initialized
- // encoder state structure,
- // subband - subband that is represented by codeblock,
- // magnBits - magnitude (non fractional) bits
- // in integer representation,
- // codeStyleFlags - options for coding,
- // mqTermType - termination mode for MQ coder,
- // mqRateAppr - rate estimation model,
- // pSfBits - pointer to variable that returns a number of significant bit planes,
- // pNOfPasses - pointer to variable that returns a number of coding passes,
- // pNOfTermPasses - pointer to variable that returns a number of terminated coding passes.
- //
- // Returns:
- // ippStsNoErr - Ok,
- // ippStsNullPtrErr - any of the pointers is NULL,
- // ippStsSizeErr - error in size of codeblock,
- // ippStsContextMatchErr - Mismatch context structure.
- //
- // Notes:
- // As an example if maximum value of source pixels is 0xA (binary 1010),
- // then sfBits should return 4 significant bits. The higher bits will not
- // be coded.
- //
- // Only significant non-fractional bits
- // in integer representation will be coded.
- // magnBits passes a number of non-fractional bits.
- // For example, if magnBits = 11,
- // the 20 (31-11) least-significant bits will not be coded.
- //
- */
- IPPAPI(IppStatus, ippiEncodeLoadCodeBlock_JPEG2K_32s_C1R, (
- const Ipp32s* pSrc,
- int srcStep,
- IppiSize codeBlockSize,
- IppiEncodeState_JPEG2K* pState,
- IppiWTSubband subband,
- int magnBits,
- IppiMQTermination mqTermType,
- IppiMQRateAppr mqRateAppr,
- int codeStyleFlags,
- int* pSfBits,
- int* pNOfPasses,
- int* pNOfTermPasses))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiEncodeStoreBits_JPEG2K_1u_C1R
- //
- // Purpose:
- // Second coding procedure that forms output stream.
- //
- // Parameters:
- // pDst - pointer to destination data buffer,
- // pDstLen - pointer to destination buffer length,
- // pState - pointer to allocated and initialized
- // encoder state structure,
- // pIsNotFinish - pointer to variable that indicates finishing of coding.
- //
- // Returns:
- // ippStsNoErr - Ok,
- // ippStsNullPtrErr - any of pointers is NULL,
- // ippStsSizeErr - size of buffer less or equal 0,
- // ippStsContextMatchErr - Mismatch context structure.
- //
- // Notes:
- // dstLen parameter used both for reading and writing,
- // it should be passed to function with valid buffer length
- // and it will be returned with used (filled) buffer length.
- // The function can be used on the following manner:
- //
- // int isNotFinish = 1;
- // while(isNotFinish)
- // {
- // int len = BUFFER_LEN;
- // ippiEncodeStoreBits_JPEG2K_1u(buffer, &len, state, &isNotFinish);
- // // writing_append(writing_obj, (char*)buffer, len);
- // }
- //
- //
- */
- IPPAPI(IppStatus, ippiEncodeStoreBits_JPEG2K_1u, (
- Ipp8u* pDst,
- int* pDstLen,
- IppiEncodeState_JPEG2K* pState,
- int* pIsNotFinish))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiEncodeGetPassTermLen_JPEG2K
- //
- // Purpose:
- // Return the length of the terminated coding pass with a given
- // terminated pass number.
- //
- // Parameters:
- // pState - pointer to allocated and initialized
- // encoder state structure,
- // passNumber - pass number,
- // pPassLen - pointer to variable to return pass length.
- //
- //
- // Returns:
- // ippStsNoErr - Ok,
- // ippStsNullPtrErr - any of pointers is NULL,
- // ippStsContextMatchErr - mismatch context structure,
- // ippStsJPEG2KBadPassNumber - pass number exceeds allowed boundaries.
- //
- */
- IPPAPI(IppStatus, ippiEncodeGetTermPassLen_JPEG2K, (
- IppiEncodeState_JPEG2K* pState,
- int passNumber,
- int* pPassLen))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiEncodeGetRate_JPEG2K
- //
- // Purpose:
- // Return the esimated target bit-rate for a given pass number.
- //
- // Parameters:
- // pState - pointer to allocated and initialized encoder state structure,
- // passNumber - pass number,
- // pRate - pointer to the variable that returns esimated rate.
- //
- //
- // Returns:
- // ippStsNoErr - Ok,
- // ippStsNullPtrErr - any of pointers is NULL,
- // ippStsContextMatchErr - mismatch context structure,
- // ippStsJPEG2KBadPassNumber - pass number exceeds allowed boundaries.
- //
- */
- IPPAPI(IppStatus, ippiEncodeGetRate_JPEG2K, (
- IppiEncodeState_JPEG2K* pState,
- int passNumber,
- int* pRate))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiEncodeGetDist_JPEG2K
- //
- // Purpose:
- // Return the esimated distortion for a given pass number.
- //
- // Parameters:
- // pState - pointer to allocated and initialized encoder state structure,
- // passNumber - pass number,
- // pDist - pointer to the variable that returns esimated distortion.
- //
- //
- // Returns:
- // ippStsNoErr - Ok,
- // ippStsNullPtrErr - any of pointers is NULL,
- // ippStsContextMatchErr - mismatch context structure,
- // ippStsJPEG2KBadPassNumber - pass number exceeds allowed boundaries.
- //
- */
- IPPAPI(IppStatus, ippiEncodeGetDist_JPEG2K, (
- IppiEncodeState_JPEG2K* pState,
- int passNumber,
- Ipp64f* pDist))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDecodeCBProgrGetStateSize_JPEG2K
- //
- // Purpose:
- // The function returns size of buffer for decoder state structure.
- //
- // Parameters:
- // codeBlockMaxSize - the maximal size of the code-block,
- // pStateSize - pointer to the variable that returns the size
- // of buffer for decoder state structure,
- // ippStsSizeErr - error in maximal size of codeblock.
- //
- // Returns:
- // ippStsNoErr - Ok,
- // ippStsNullPtrErr - any of pointers is NULL,
- //
- */
- IPPAPI(IppStatus, ippiDecodeCBProgrGetStateSize_JPEG2K, (
- IppiSize codeBlockMaxSize,
- int *pStateSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDecodeCBProgrInit_JPEG2K
- //
- // Purpose:
- // The function performs initialization of state structure.
- //
- // Parameters:
- // pState - pointer to the state structure
- //
- // Returns:
- // ippStsNoErr - Ok,
- // ippStsNullPtrErr - any of pointers is NULL,
- // ippStsContextMatchErr - mismatch context structure.
- //
- */
- IPPAPI(IppStatus, ippiDecodeCBProgrInit_JPEG2K, (
- IppiDecodeCBProgrState_JPEG2K *pState))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDecodeCBProgrInitAlloc_JPEG2K
- //
- // Purpose:
- // The function allocates memory for and performs initialization of
- // state structure.
- //
- // Parameters:
- // pState - pointer to the variable that returns the pointer
- // to the allocated and initialized encoder state structure,
- // codeBlockMaxSize - the maximal size of the code-block.
- //
- // Returns:
- // ippStsNoErr - Ok,
- // ippStsNullPtrErr - any of pointers is NULL,
- // ippStsSizeErr - error in size of codeblock.
- //
- */
- IPPAPI(IppStatus, ippiDecodeCBProgrInitAlloc_JPEG2K, (
- IppiDecodeCBProgrState_JPEG2K **pState,
- IppiSize codeBlockMaxSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDecodeCBProgrFree_JPEG2K
- //
- // Purpose:
- // The function frees memory allocated for the state structure.
- //
- // Parameters:
- // pState - pointer to the state structure
- //
- // Returns:
- // ippStsNoErr - Ok,
- // ippStsNullPtrErr - any of pointers is NULL,
- // ippStsContextMatchErr - mismatch context structure.
- //
- */
- IPPAPI(IppStatus, ippiDecodeCBProgrFree_JPEG2K, (
- IppiDecodeCBProgrState_JPEG2K *pState))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDecodeCBProgrAttach_JPEG2K_32s_C1R
- //
- // Purpose:
- // The function attachs code-block destination buffer and
- // set-up its parameters in state structure.
- //
- // Parameters:
- // pDst - pointer to buffer that store code-block data,
- // dstStep - step in bytes between lines of code-block,
- // codeBlockSize - the size of the code-block,
- // pState pointer - to the state structure,
- // subband wavelet - subband type that is represented by code-block,
- // sfBits - the number of significant bits in code-block,
- // codeStyleFlags - coding options defined by combination of flags.
- //
- // Returns:
- // ippStsNoErr - Ok,
- // ippStsNullPtrErr - any of pointers is NULL,
- // ippStsStepErr - step value is less than or equal to zero,
- // ippStsContextMatchErr - mismatch context structure.
- //
- // Notes:
- // The code-block data is updated in buffer
- // attached by ippiDecodeProgrInit_JPEG2K function.
- //
- */
- IPPAPI(IppStatus, ippiDecodeCBProgrAttach_JPEG2K_32s_C1R, (
- Ipp32s *pDst,
- int dstStep,
- IppiSize codeBlockSize,
- IppiDecodeCBProgrState_JPEG2K *pState,
- IppiWTSubband subband,
- int sfBits,
- int codeStyleFlags))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDecodeCBProgrSetPassCounter_JPEG2K
- //
- // Purpose:
- // The function sets the value of internal coding pass counter.
- //
- // Parameters:
- // nOfPasses - the number of coding passes to set,
- // pState - pointer to the state structure.
- //
- // Returns:
- // ippStsNoErr - Ok,
- // ippStsNullPtrErr - any of pointers is NULL,
- // ippStsContextMatchErr - mismatch context structure.
- //
- */
- IPPAPI(IppStatus, ippiDecodeCBProgrSetPassCounter_JPEG2K, (
- int nOfPasses,
- IppiDecodeCBProgrState_JPEG2K *pState))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDecodeCBProgrGetPassCounter_JPEG2K
- //
- // Purpose:
- // The function gets the value of internal coding pass counter.
- //
- // Parameters:
- // pState - pointer to the state structure,
- // pNOfResidualPasses - pointer to the variable to return,
- // the number of residual coding passes
- //
- // Returns:
- // ippStsNoErr - Ok,
- // ippStsNullPtrErr - any of pointers is NULL,
- // ippStsContextMatchErr - mismatch context structure.
- //
- */
- IPPAPI(IppStatus, ippiDecodeCBProgrGetPassCounter_JPEG2K, (
- IppiDecodeCBProgrState_JPEG2K *state,
- int *pNOfResidualPasses))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDecodeCBProgrGetCurBitPlane_JPEG2K
- //
- // Purpose:
- // The function returns the current bit plane number.
- //
- // Parameters:
- // pState - pointer to the state structure,
- // pBitPlaneNum - pointer to the variable that returns the bit plane
- //
- // Returns:
- // ippStsNoErr - Ok,
- // ippStsNullPtrErr - any of pointers is NULL,
- // ippStsContextMatchErr - mismatch context structure.
- //
- */
- IPPAPI(IppStatus, ippiDecodeCBProgrGetCurBitPlaneNum_JPEG2K, (
- IppiDecodeCBProgrState_JPEG2K *pState,
- int *pBitPlaneNum))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDecodeCBProgrStep_JPEG2K
- //
- // Purpose:
- // The function performs single step of decoding progression.
- //
- // Parameters:
- // pSrc - pointer to compressed data that represent
- // terminated segment from some count of coding passes,
- // srcLen - length of the segment,
- // pState - pointer to the state structure.
- //
- // Returns:
- // ippStsNoErr - Ok,
- // ippStsNullPtrErr - any of pointers is NULL,
- // ippStsSizeErr - error in length of terminated segment.
- // ippStsContextMatchErr - mismatch context structure.
- //
- // Notes:
- // The code-block data is updated in buffer
- // attached by ippiDecodeProgrInit_JPEG2K function.
- //
- */
- IPPAPI(IppStatus, ippiDecodeCBProgrStep_JPEG2K, (
- const Ipp8u* pSrc,
- int srcLen,
- IppiDecodeCBProgrState_JPEG2K* pState))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDecodeGetBufSize_JPEG2K
- //
- // Purpose:
- // Return size of working buffer.
- //
- // Parameters:
- // codeBlockMaxSize - maximal size of codeblock for coding.
- // pSize - pointer to the variable that returns the size of working buffer
- //
- // Returns:
- // ippStsNoErr - Ok,
- // ippStsNullPtrErr - any of the pointers is NULL,
- // ippStsSizeErr - error in size of codeblock,
- //
- */
- IPPAPI(IppStatus, ippiDecodeGetBufSize_JPEG2K, (
- IppiSize codeBlockMaxSize,
- int* pSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiDecodeCodeBlock_JPEG2K_1u32s_C1R
- //
- // Purpose:
- // Decode compressed JPEG2000 codeblock data.
- //
- // Parameters:
- // pSrc - pointer to the source of compressed data,
- // pDst - pointer to the destination for codeblock,
- // dstStep - step in bytes to each next line of codeblock,
- // codeBlockSize - size of codeblock,
- // subband - subband that is represented by codeblock,
- // sfBits - number of significant bit planes,
- // nOfPasses - number of coding passes,
- // pTermPassLen - pointer to the array of legnths for each terminated pass,
- // nOfTermPasses - number of terminated passes,
- // codeStyleFlags - options for coding,
- // pErrorBitPlane - pointer to the bit plane that contain first error returned for
- // damaged codeblock,
- // pBuffer - pointer to the working buffer.
- //
- // Returns:
- // ippStsNoErr - Ok,
- // ippStsNullPtrErr - any of pointers is NULL,
- // ippStsSizeErr - error in size of codeblock,
- // ippStsJPEG2KDamagedCodeBlock - codeblock contains damaged data.
- //
- // Notes:
- // errorBitPlane can be NULL if such information does not required.
- //
- */
- IPPAPI(IppStatus, ippiDecodeCodeBlock_JPEG2K_1u32s_C1R, (
- const Ipp8u* pSrc,
- Ipp32s* pDst,
- int dstStep,
- IppiSize codeBlockSize,
- IppiWTSubband subband,
- int sfBits,
- int nOfPasses,
- const int* pTermPassLen,
- int nOfTermPasses,
- int codeStyleFlags,
- int* pErrorBitPlane,
- Ipp8u* pBuffer))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiRCTFwd_JPEG2K_16s_C3P3R
- // ippiRCTFwd_JPEG2K_32s_C3P3R
- //
- // Purpose:
- // forward reversible component transformation
- //
- // Parameter:
- // pSrc pointer to input data
- // srcStep line offset in input data
- // pDst pointer to pointers to output data
- // dstStep line offset in output data
- // roiSize ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // color conversion equations:
- // Y0 = (I0 + 2*I1 + I2) >> 2
- // Y1 = I2 - I1
- // Y2 = I0 - I1
- */
- IPPAPI(IppStatus, ippiRCTFwd_JPEG2K_16s_C3P3R, (
- const Ipp16s* pSrc,
- int srcStep,
- Ipp16s* pDst[3],
- int dstStep,
- IppiSize roiSize))
- IPPAPI(IppStatus, ippiRCTFwd_JPEG2K_32s_C3P3R, (
- const Ipp32s* pSrc,
- int srcStep,
- Ipp32s* pDst[3],
- int dstStep,
- IppiSize roiSize))
- /* ////////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiRCTFwd_JPEG2K_16s_P3IR
- // ippiRCTFwd_JPEG2K_32s_P3IR
- //
- // Purpose:
- // forward reversible color conversion (three planes, in-place)
- //
- // Parameter:
- // pSrcDst pointer to pointers to input/ouput data
- // srcDstStep line offset in input/ouput data
- // roiSize ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // color conversion equations:
- // Y0 = (I0 + 2*I1 + I2) >> 2
- // Y1 = I2 - I1
- // Y2 = I0 - I1
- */
- IPPAPI(IppStatus, ippiRCTFwd_JPEG2K_16s_P3IR, (
- Ipp16s* pSrcDst[3],
- int srcDstStep,
- IppiSize roiSize))
- IPPAPI(IppStatus, ippiRCTFwd_JPEG2K_32s_P3IR, (
- Ipp32s* pSrcDst[3],
- int srcDstStep,
- IppiSize roiSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiRCTInv_JPEG2K_16s_P3C3R
- // ippiRCTInv_JPEG2K_32s_P3C3R
- //
- // Purpose:
- // inverse reversible component transformation
- //
- // Parameter:
- // pSrc pointer to pointers to input data
- // srcStep line offset in input data
- // pDst pointer to output data
- // dstStep line offset in output data
- // roiSize ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // color conversion equations:
- // I1 = Y0 - ((Y2 + Y1) >> 2)
- // I0 = Y2 + I1
- // I2 = Y1 + I1
- */
- IPPAPI(IppStatus, ippiRCTInv_JPEG2K_16s_P3C3R, (
- const Ipp16s* pSrc[3],
- int srcStep,
- Ipp16s* pDst,
- int dstStep,
- IppiSize roiSize))
- IPPAPI(IppStatus, ippiRCTInv_JPEG2K_32s_P3C3R, (
- const Ipp32s* pSrc[3],
- int srcStep,
- Ipp32s* pDst,
- int dstStep,
- IppiSize roiSize))
- /* ////////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiRCTInv_JPEG2K_16s_P3IR
- // ippiRCTInv_JPEG2K_32s_P3IR
- //
- // Purpose:
- // inverse reversible color conversion (three planes, in-place)
- //
- // Parameter:
- // pSrcDst pointer to pointers to input/ouput data
- // srcDstStep line offset in input/ouput data
- // roiSize ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // color conversion equations:
- // I1 = Y0 - ((Y2 + Y1) >> 2)
- // I0 = Y2 + I1
- // I2 = Y1 + I1
- */
- IPPAPI(IppStatus, ippiRCTInv_JPEG2K_16s_P3IR, (
- Ipp16s* pSrcDst[3],
- int srcDstStep,
- IppiSize roiSize))
- IPPAPI(IppStatus, ippiRCTInv_JPEG2K_32s_P3IR, (
- Ipp32s* pSrcDst[3],
- int srcDstStep,
- IppiSize roiSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiICTFwd_JPEG2K_32f_C3P3R
- //
- // Purpose:
- // forward irreversible component transformation
- //
- // Parameter:
- // pSrc pointer to input data
- // srcStep line offset in input data
- // pDst pointer to pointers to output data
- // dstStep line offset in output data
- // roiSize ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // color conversion equations:
- // Y0 = 0.299 *I0 + 0.587 *I1 + 0.114 *I2
- // Y1 = -0.16875*I0 - 0.33126*I1 + 0.5 *I2
- // Y2 = 0.5 *I0 - 0.41869*I1 - 0.08131*I2
- */
- IPPAPI(IppStatus, ippiICTFwd_JPEG2K_32f_C3P3R, (
- const Ipp32f* pSrc,
- int srcStep,
- Ipp32f* pDst[3],
- int dstStep,
- IppiSize roiSize))
- /* ////////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiICTFwd_JPEG2K_16s_P3IR
- // ippiICTFwd_JPEG2K_32s_P3IR
- // ippiICTFwd_JPEG2K_32f_P3IR
- //
- // Purpose:
- // forward irreversible color conversion (three planes, in-place)
- //
- // Parameter:
- // pSrcDst pointer to pointers to input/ouput data
- // srcDstStep line offset in input/ouput data
- // roiSize ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // color conversion equations:
- // Y0 = 0.299 *I0 + 0.587 *I1 + 0.114 *I2
- // Y1 = -0.16875*I0 - 0.33126*I1 + 0.5 *I2
- // Y2 = 0.5 *I0 - 0.41869*I1 - 0.08131*I2
- */
- IPPAPI(IppStatus, ippiICTFwd_JPEG2K_16s_P3IR, (
- Ipp16s* pSrcDst[3],
- int srcDstStep,
- IppiSize roiSize))
- IPPAPI(IppStatus, ippiICTFwd_JPEG2K_32s_P3IR, (
- Ipp32s* pSrcDst[3],
- int srcDstStep,
- IppiSize roiSize))
- IPPAPI(IppStatus, ippiICTFwd_JPEG2K_32f_P3IR, (
- Ipp32f* pSrcDst[3],
- int srcDstStep,
- IppiSize roiSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiICTInv_JPEG2K_32f_P3C3R
- //
- // Purpose:
- // inverse irreversible component transformation
- //
- // Parameter:
- // pSrc pointer to pointers to input data
- // srcStep line offset in input data
- // pDst pointer to output data
- // dstStep line offset in output data
- // roiSize ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // color conversion equations:
- // I0 = Y0 + 1.402 *Y2
- // I1 = Y0 - 0.34413*Y1 - 0.71414*Y2
- // I2 = Y0 + 1.772 *Y1
- */
- IPPAPI(IppStatus, ippiICTInv_JPEG2K_32f_P3C3R, (
- const Ipp32f* pSrc[3],
- int srcStep,
- Ipp32f* pDst,
- int dstStep,
- IppiSize roiSize))
- /* ////////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiICTInv_JPEG2K_16s_P3IR
- // ippiICTInv_JPEG2K_32s_P3IR
- // ippiICTInv_JPEG2K_32f_P3IR
- //
- // Purpose:
- // inverse irreversible color conversion (three planes, in-place)
- //
- // Parameter:
- // pSrcDst pointer to pointers to input/ouput data
- // srcDstStep line offset in input/ouput data
- // roiSize ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // color conversion equations:
- // I0 = Y0 + 1.402 *Y2
- // I1 = Y0 - 0.34413*Y1 - 0.71414*Y2
- // I2 = Y0 + 1.772 *Y1
- */
- IPPAPI(IppStatus, ippiICTInv_JPEG2K_16s_P3IR, (
- Ipp16s* pSrcDst[3],
- int srcDstStep,
- IppiSize roiSize))
- IPPAPI(IppStatus, ippiICTInv_JPEG2K_32s_P3IR, (
- Ipp32s* pSrcDst[3],
- int srcDstStep,
- IppiSize roiSize))
- IPPAPI(IppStatus, ippiICTInv_JPEG2K_32f_P3IR, (
- Ipp32f* pSrcDst[3],
- int srcDstStep,
- IppiSize roiSize))
- /* ///////////////////////////////////////////////////////////////////////////
- // TIFF specific functions
- /////////////////////////////////////////////////////////////////////////// */
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiPackBits_TIFF_8u_C1
- //
- // Purpose:
- // encode bytes using RLE algorithm according TIFF 6.0 spec
- //
- // Parameter:
- // pSrc pointer to input buffer to keep Byte Segment or part of Byte Segment
- // srcLenBytes length, in bytes, of input buffer
- // pDst pointer to output buffer
- // pDstCurrPos pointer to the current byte position in output buffer
- // dstLenBytes length, in bytes, of output buffer
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // function implements PackBits algorithm according TIFF 6.0 spec
- */
- IPPAPI(IppStatus,ippiPackBitsRow_TIFF_8u_C1,(
- const Ipp8u* pSrc,
- int srcLenBytes,
- Ipp8u* pDst,
- int* pDstCurrPos,
- int dstLenBytes))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiUnpackBits_TIFF_8u_C1
- //
- // Purpose:
- // decode bytes using RLE algorithm according TIFF 6.0 spec
- //
- // Parameter:
- // pSrc pointer to RLE encoded data
- // pSrcCurrPos pointer to current position in source data
- // srcLenBytes length, in bytes, of input data
- // pDst pointer to buffer which receive decoded data
- // dstLenBytes length, in bytes, of output buffer
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // function implements UnPackBits algorithm according TIFF 6.0 spec
- */
- IPPAPI(IppStatus,ippiUnpackBitsRow_TIFF_8u_C1,(
- const Ipp8u* pSrc,
- int* pSrcCurrPos,
- int srcLenBytes,
- Ipp8u* pDst,
- int dstLenBytes))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiSplitRow_TIFF_16u8u_C1
- //
- // Purpose:
- // Split image row into two Byte Segment
- //
- // Parameter:
- // pSrc - pointer to source
- // pDst - pointer to output arrays
- // dstLen - naumber of elements in output arrays
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiSplitRow_TIFF_16u8u_C1,(
- const Ipp16u* pSrc,
- Ipp8u* pDst[2],
- int dstLen))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiJoinRow_TIFF_8u16u_C1
- //
- // Purpose:
- // Join two decoded Byte Segment into row of image
- //
- // Parameter:
- // pSrc - pointer to source arrays
- // pDst - pointer to output array
- // dstLen - naumber of elements in output array
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- //
- */
- IPPAPI(IppStatus, ippiJoinRow_TIFF_8u16u_C1,(
- const Ipp8u* pSrc[2],
- Ipp16u* pDst,
- int dstLen))
- /* ///////////////////////////////////////////////////////////////////////////
- // Texture Compression specific functions
- /////////////////////////////////////////////////////////////////////////// */
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiTextureEncodeBlockFromRGBA_DXT1_8u_C4C1R
- //
- // Purpose:
- // compress RGBA image to DXT1 blocks
- //
- // Parameter:
- // pSrc pointer to input image
- // srcStep raster line width, in bytes
- // srcRoi ROI size
- // pDst pointer to output DXT1 data
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // negative line step is not supported
- */
- IPPAPI(IppStatus, ippiTextureEncodeBlockFromRGBA_DXT1_8u_C4C1R,(
- const Ipp8u* pSrc,
- Ipp32u srcStep,
- IppiSize srcRoi,
- Ipp8u* pDst))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiTextureEncodeBlockFromRGBA_DXT3_8u_C4C1R
- //
- // Purpose:
- // compress RGBA image to DXT3 blocks
- //
- // Parameter:
- // pSrc pointer to input image
- // srcStep raster line width, in bytes
- // srcRoi ROI size
- // pDst pointer to output DXT3 data
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // negative line step is not supported
- */
- IPPAPI(IppStatus, ippiTextureEncodeBlockFromRGBA_DXT3_8u_C4C1R,(
- const Ipp8u* pSrc,
- Ipp32u srcStep,
- IppiSize srcRoi,
- Ipp8u* pDst))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiTextureEncodeBlockFromRGBA_DXT5_8u_C4C1R
- //
- // Purpose:
- // compress RGBA image to DXT5 blocks
- //
- // Parameter:
- // pSrc pointer to input image
- // srcStep raster line width, in bytes
- // srcRoi ROI size
- // pDst pointer to output DXT5 data
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // negative line step is not supported
- */
- IPPAPI(IppStatus, ippiTextureEncodeBlockFromRGBA_DXT5_8u_C4C1R,(
- const Ipp8u* pSrc,
- Ipp32u srcStep,
- IppiSize srcRoi,
- Ipp8u* pDst))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiTextureEncodeBlockFromYCoCg_DXT5_8u_C3C1R
- //
- // Purpose:
- // compress YCoCg image to DXT5 blocks
- //
- // Parameter:
- // pSrc pointer to input image
- // srcStep raster line width, in bytes
- // srcRoi ROI size
- // pDst pointer to output DXT5 data
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // negative line step is not supported
- */
- IPPAPI(IppStatus, ippiTextureEncodeBlockFromYCoCg_DXT5_8u_C3C1R,(
- const Ipp8u* pSrc,
- Ipp32u srcStep,
- IppiSize srcRoi,
- Ipp8u* pDst))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiTextureDecodeBlockToRGBA_DXT1_8u_C1C4R
- //
- // Purpose:
- // decompress DXT1 blocks to RGBA image
- //
- // Parameter:
- // pSrc pointer to input DXT1 data
- // pDst pointer to output image
- // dstStep raster line width, in bytes
- // dstRoi ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // negative line step is not supported
- */
- IPPAPI(IppStatus, ippiTextureDecodeBlockToRGBA_DXT1_8u_C1C4R,(
- const Ipp8u* pSrc,
- Ipp8u* pDst,
- Ipp32u dstStep,
- IppiSize dstRoi))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiTextureDecodeBlockToRGBA_DXT3_8u_C1C4R
- //
- // Purpose:
- // decompress DXT3 blocks to RGBA image
- //
- // Parameter:
- // pSrc pointer to input DXT3 data
- // pDst pointer to output image
- // dstStep raster line width, in bytes
- // dstRoi ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // negative line step is not supported
- */
- IPPAPI(IppStatus, ippiTextureDecodeBlockToRGBA_DXT3_8u_C1C4R,(
- const Ipp8u* pSrc,
- Ipp8u* pDst,
- Ipp32u dstStep,
- IppiSize dstRoi))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiTextureDecodeBlockToRGBA_DXT5_8u_C1C4R
- //
- // Purpose:
- // decompress DXT5 blocks to RGBA image
- //
- // Parameter:
- // pSrc pointer to input DXT5 data
- // pDst pointer to output image
- // dstStep raster line width, in bytes
- // dstRoi ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // negative line step is not supported
- */
- IPPAPI(IppStatus, ippiTextureDecodeBlockToRGBA_DXT5_8u_C1C4R,(
- const Ipp8u* pSrc,
- Ipp8u* pDst,
- Ipp32u dstStep,
- IppiSize dstRoi))
- /* ///////////////////////////////////////////////////////////////////////////
- // Name:
- // ippiTextureDecodeBlockToRGBA_BC7_8u_C1C4R
- //
- // Purpose:
- // decompress BC7 blocks to RGBA image
- //
- // Parameter:
- // pSrc pointer to input BC7 data
- // pDst pointer to output image
- // dstStep raster line width, in bytes
- // dstRoi ROI size
- //
- // Returns:
- // IppStatus
- //
- // Notes:
- // negative line step is not supported
- */
- IPPAPI(IppStatus, ippiTextureDecodeBlockToRGBA_BC7_8u_C1C4R,(
- const Ipp8u* src,
- Ipp8u* dst,
- Ipp32u dstStep,
- IppiSize dstRoi))
- /* /////////////////////////////////////////////////////////////////////////////
- // High Definition Photo functions
- ///////////////////////////////////////////////////////////////////////////// */
- /* /////////////////////////////////////////////////////////////////////////////
- // Photo Core Transform functions
- */
- /* /////////////////////////////////////////////////////////////////////////////
- // Names:
- // ippiPCTFwd16x16_HDP_32s_C1IR,
- // ippiPCTFwd8x16_HDP_32s_C1IR,
- // ippiPCTFwd8x8_HDP_32s_C1IR
- // ippiPCTFwd_HDP_32s_C1IR
- // Purpose: Photo Core Transform Forward 1st stage
- // Returns:
- // ippStsNoErr OK
- // ippStsNullPtrErr One of the pointers is NULL
- // ippStsStepErr roi.width or roi.height is less than or equal to zero
- // or is not a multiple of four
- // ippStsSizeErr srcDstStep is less than (roi.width * sizeof(datatype))
- //
- // Parameters:
- // pSrcDst Pointer to the source/destination image
- // srcDstStep Step through the source/destination image
- // roiSize Size of the ROI
- */
- IPPAPI(IppStatus, ippiPCTFwd16x16_HDP_32s_C1IR, (
- Ipp32s* pSrcDst,
- Ipp32u srcDstStep))
- IPPAPI(IppStatus, ippiPCTFwd8x16_HDP_32s_C1IR,(
- Ipp32s* pSrcDst,
- Ipp32u srcDstStep))
- IPPAPI(IppStatus, ippiPCTFwd8x8_HDP_32s_C1IR,(
- Ipp32s* pSrcDst,
- Ipp32u srcDstStep))
- IPPAPI(IppStatus, ippiPCTFwd_HDP_32s_C1IR,(
- Ipp32s* pSrcDst,
- Ipp32u srcDstStep,
- IppiSize roiSize))
- /* /////////////////////////////////////////////////////////////////////////////
- // Names:
- // ippiPCTInv16x16_HDP_32s_C1IR,
- // ippiPCTInv8x16_HDP_32s_C1IR,
- // ippiPCTInv8x8_HDP_32s_C1IR
- // ippiPCTInv_HDP_32s_C1IR
- // Purpose: Photo Core Transform Inverse 1st stage
- // Returns:
- // ippStsNoErr OK
- // ippStsNullPtrErr One of the pointers is NULL
- // ippStsStepErr roi.width or roi.height is less than or equal to zero
- // or is not a multiple of four
- // ippStsSizeErr srcDstStep is less than (roi.width * sizeof(datatype))
- //
- // Parameters:
- // pSrcDst Pointer to the source/destination image
- // srcDstStep Step through the source/destination image
- // roiSize Size of the ROI
- */
- IPPAPI(IppStatus, ippiPCTInv16x16_HDP_32s_C1IR,(
- Ipp32s* pSrcDst,
- Ipp32u srcDstStep))
- IPPAPI(IppStatus, ippiPCTInv8x16_HDP_32s_C1IR,(
- Ipp32s* pSrcDst,
- Ipp32u srcDstStep))
- IPPAPI(IppStatus, ippiPCTInv8x8_HDP_32s_C1IR,(
- Ipp32s* pSrcDst,
- Ipp32u srcDstStep))
- IPPAPI(IppStatus, ippiPCTInv_HDP_32s_C1IR,(
- Ipp32s* pSrcDst,
- Ipp32u srcDstStep,
- IppiSize roiSize))
- #ifdef __cplusplus
- }
- #endif
- #if defined (_IPP_STDCALL_CDECL)
- #undef _IPP_STDCALL_CDECL
- #define __stdcall __cdecl
- #endif
- #endif /* __IPPJ_H__ */
- /* //////////////////////// End of file "ippj.h" ////////////////////////// */
|